在Centos7环境安装MySQL

2023-10-30

0. 说明:

  • 安装与卸载中,用戶全部切换成为root
  • 初期,mysql先使用root进行,尽快适应mysql语句;后期学习用戶管理,再考虑新建普通用戶

1. 从普通用户切换到root用户

在这里插入图片描述


2. 在root用户目录下创建mysql文件夹

  • 之后MySQL的相关操作都在其下进行在这里插入图片描述
  • 在root目录下新建目录(文件夹):mkdir mysql
  • 进入该文件夹:cd mysql

3. 卸载原有安装过的MySQL

  • 用户目录下可能已经存在有mysqld目录和 mariadb目录, 可以直接使用MySQL(如下(1)部分),但由于版本等问题,更建议卸载原有(如下(2)部分),而后重安装MySQL

(1) 查看是否能直接使用MySQL

  • ①检查在用户目录下是否已经存在 mysqld目录和 mariadb目录:
    • ps ajx | grep mysqld
    • ps ajx | grep mariadb
      • mariadb:属于MySQL的开源分支.因为有人担心MySQL被商用后的后期可能就不给开源了,故将MySQL过去开源的版本的取出置于社区中发展使用.
  • ②若目录下已经存在二者,则可以直接使用对应的MySQL,编写SQL进行通信. ⇒ 前提是保证已存在的MySQL版本
    • 先确定是否存在MySQL:which mysql
    • 再确定MySQL版本:mysql --version
      在这里插入图片描述
  • ③若检查发现系统目录本就不存在MySQL,则可直接进行跳转至MySQL安装

(2) 卸载原有MySQL

  • 不论存在mysqld目录或 mariadb目录, 都需卸载重安(以下以卸载mysqld目录为例, mariadb目录的卸载同理):

  • ① 暂停MySQL的运行状态(相当于在Windows下安装或更新软件,要先把软件退出)
    在这里插入图片描述

    • a. 查看MySQL服务的运行状态 : ps ajx | grep mysqld
    • b.暂停MySQL的运行(若MySQL处于运行状态,则不好卸载重安,故在卸载前要先停止其运行) : systemctl stop mysqld
      • systemctl是Linux中的一个脚本程序,能够开始start /停止stop /重新启动restart, Linux下对应的某个服务
      • mysqld: 一般Linux下的服务都是以d结尾,对应d是daemon的缩写,说明它自己是个守护进程(daemon) ,它在后台运行,一般都是用来做服务端程序。
  • ② 卸载系统安装包

    • 说明:
      • 若已存在mysql,则表示之前安装过,故存在有安装包
      • 在Linux下,安装包的格式一般为.rpm格式,但这个格式一般无法看到 ⇒ 因为平常安装都是使用源码 or yum安装。而对于yum安装是通过从远端拉取对应的.rpm包,根据依赖关系把对应的包拉取来,故无法查看
    • 执行:
      • 查看系统中所有的安装包(曾经当前环境安装过的):rpm -qa
      • 搜索特定关键字的安装包:rpm -qa | grep mysql在这里插入图片描述
      • 过去是用yum安装的,故卸载也需要通过yum卸载:
        • 一个个去删除安装包:yum remove (如上搜索到的mysql相关安装包名) ⇒ 如yum remove mysql-community-client-5.7.41-1.el7.x86_64
        • 批量化统一删除安装包:rpm -qa | grep mysql | xargs yum -y remove
          • xargs:把从标准输入中读取到的一行行的内容,一个个喂给之后进程(此例中即yum remove,让yum进行逐行删除)
            • 每次yum remove时,必须将每个对应要删除的安装包都拼接到yum remove后面 ⇒ 属于命令行(用的是argv);
            • 而通过管道|读取的安装包列表 ⇒ 属于标准输入(用的是0号下标);
            • 命令行与标准输入属于两套完全不同的东西 ,故rpm -qa | grep mysql | yum remove无法实现批量删除 ⇒ 因此要采用xargs工具
          • -y:由于每删除一项安装包时,都会询问是否确认删除(如同过去安装时询问是否确认要安装同理),故添加-y表示不必再依次询问,直接卸载即可

4. 安装MySQL的yum源

(1)下载和自己系统一致的MySQL的yum源

  • 和自己系统一致,是为了以避免出现软件兼容性问题
    • 安装软件一般不安装最新版,但至少要保证比操作系统新一点(如本身是7.6,可以安装7.7/ 7.8/ 7.9)
  • ①查看自己系统版本:cat /etc/redhat-release在这里插入图片描述
  • ②在官方yum源下载对应版本的.rpm文件
    • 直接点击打开官方yum源
    • 我的是centos7.6版本,故下载mysql57-community-release-el7.rpm到本地即可
      在这里插入图片描述

(2)将下载的.rpm安装包上传至Linux上

  • rz命令:选择刚刚下载的安装包在这里插入图片描述
    在这里插入图片描述
  • ll:可查看是否传输成功.rpm
    在这里插入图片描述

(3)在Linux上安装.rpm安装包

  • ①查看未安装mysql安装包前,曾经系统中的yum源(是没有mysql安装包的):ls /etc/yum.repos.d/ -l
    在这里插入图片描述
  • ②安装:rpm -ivh mysql57-community-release-el7.rpm
    • -ivh:相当于对安装包进行解压(在Linux下安装操作本质就是将文件内容做拷贝)在这里插入图片描述
  • ③此时再次查看系统中的yum源时,可发现已有mysql了
    在这里插入图片描述

5. 检查yum源能否正常工作

  • 判断是否正常工作的标准即,能否根据yum源在对应网站当中将对应mysql的镜像或对应的安装包全部获取到
  • yum list | grep mysql
    在这里插入图片描述

6. 一键安装MySQL服务

  • ①安装前可查看,当前系统是不存在MySQL、MySQL对应服务和MySQL配置文件的:

    • which mysql
    • which mysqld
    • ls /etc/my.cnf
      在这里插入图片描述
  • ②安装MySQL

    • yum install -y mysql-community-server
    • 虽然此处看似只安装了一个包,但其实它会将MySQL的客户端、开发库和公共组件等多样内容都安装着
  • ③安装遇到秘钥过期的问题:
    在这里插入图片描述

    • 解决方式:在命令行输入rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
  • 最终显示完成安装:在这里插入图片描述


7. 检查是否安装成功

  • 检查以下三部分是否都存在
    • which mysql
    • which mysqld
    • ls /etc/my.cnf
      在这里插入图片描述
  • 可查看MySQL的版本在这里插入图片描述

8. 启动MySQL服务端

  • 安装后即可启动mysqld:systemctl start mysqld
    • 注意启动的是服务端mysqld,而非客户端mysql在这里插入图片描述
  • 进一步了解mysqld是什么:netstat -nltp
    在这里插入图片描述
    • MySQL的服务端就是一个网络服务器 ⇒ 由于是网络服务器,其必然使用的是TCP协议 ⇒ 由于是TCP协议,mysqld便处于应用层
    • 在网络的角度:mysqld是一个应用层服务
    • 在系统的角度:mysqld是一个用户层进程

9. 登录MySQL

  • 此处提供MySQL免密码登录配置方式
  • ①打开mysql配置文件:vim /etc/my.cnf
  • ②在配置文件中的最后一栏加入选项后,并保存退出:skip-grant-tables
    在这里插入图片描述
  • ③重启服务端,适应新配置:systemctl restart mysqld
  • ④免密登录:mysql -uroot -p
    • Enter password: 后直接回车即可进入
      在这里插入图片描述

10. 配置my.cnf

  • ①打开mysql配置文件:vim /etc/my.cnf
  • ②添加以下两条配置内容
    • character-set-server=utf8
    • default-storage-engine=innodb 在这里插入图片描述
  • ③ 配置完成,重启即可:systemctl restart mysqld

11. 安装成功后,可删除.rpm文件

  • rm * -rf
    在这里插入图片描述

12. 设置开机启动(可不设)

#开启开机自启动
systemctl enable mysqld
systemctl daemon-reload
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Centos7环境安装MySQL 的相关文章

  • JDBC 错误:在结果集开始之前[重复]

    这个问题在这里已经有答案了 我在 Java Eclipse 中收到错误消息 我在 MySql 中有一个数据库 它有列 String user name int id time int id desk int user password 我想
  • os.Mkdir 和 os.MkdirAll 权限

    我正在尝试在程序开始时创建一个日志文件 我需要检查是否 log如果不创建目录 则目录存在 然后继续创建日志文件 好吧 我尝试使用os Mkdir 也os MkdirAll 但无论我在第二个参数中输入什么值 我都会得到一个没有权限的锁定文件夹
  • Linux:在文件保存时触发 Shell 命令

    我想在修改文件时自动触发 shell 命令 我认为这可以通过注册 inotify 挂钩并调用来在代码中完成system 但是是否有更高级别的 bash 命令可以完成此任务 尝试 inotify 工具 我在复制链接时遇到问题 抱歉 但 Git
  • 使用 sh 运行 bash 脚本

    我有 bash 脚本 它需要 bash 另一个人尝试运行它 sh script name sh 它失败了 因为 sh 是他的发行版中 dash 的符号链接 ls la bin sh lrwxrwxrwx 1 root root 4 Aug
  • Tomcat 6找不到mysql驱动

    这里有一个类似的问题 但关于类路径 ClassNotFoundException com mysql jdbc Driver https stackoverflow com questions 1585811 classnotfoundex
  • MySQL 概念:会话与连接

    我对 MySQL 的概念有点困惑 会话与连接 当谈论连接到 MySQL 时 我们使用连接术语 连接池等 然而在 MySQL 在线文档中 http dev mysql com doc refman 4 1 en server system v
  • 无法连接到 MAMP 上的 phpMyAdmin

    我收到此错误消息 MySQL 说道 无法连接 设置无效 phpMyAdmin 尝试连接 MySQL 服务器 但服务器拒绝连接 您应该检查配置中的主机 用户名和密码 并确保它们与 MySQL 服务器管理员提供的信息相对应 用户和通行证是默认的
  • C语言中如何通过内存地址映射函数名和行号?

    如何用 GCC 中的内存地址映射回函数名称和行号 即假设一个 C 语言原型 void func Get the address of caller maybe this could be avoided MemoryAddress get
  • 如何授予 apache 使用 NTFS 分区上的目录的权限?

    我在一台带有 20GB 硬盘的旧机器上运行 Linux Lubutu 12 10 我有一个 1 TB 外部硬盘 上面有一个 NTFS 分区 在该分区上 有一个 www 目录 用于保存我的网页内容 它在启动时自动安装为 media t515
  • 防止 Propel 插入空字符串

    当未设置列时 如何防止 Propel ORM 插入空字符串 CREATE TABLE user uid INTEGER PRIMARY KEY AUTO INCREMENT email VARCHAR 255 NOT NULL UNIQUE
  • 为arm构建WebRTC

    我想为我的带有arm926ej s处理器的小机器构建webrtc 安装 depot tools 后 我执行了以下步骤 gclient config http webrtc googlecode com svn trunk gclient s
  • SQL Server 2005 是否有与 MySql 的 ENUM 数据类型等效的数据类型?

    我正在开发一个项目 我想在表中存储一些容易枚举的信息 MySql 的枚举数据类型正是我想要的 http dev mysql com doc refman 5 0 en enum html http dev mysql com doc ref
  • MySQL:@@ 是什么意思?

    我正在阅读本页上的 MySQL 文档 http dev mysql com doc refman 5 1 en set statement html http dev mysql com doc refman 5 1 en set stat
  • 如何从 MySQL 数据查询创建 XML 文件?

    我想知道一种仅使用 MySQL 查询创建 XML 文件的方法 根本不使用任何脚本语言 有关于这个主题的书籍 教程吗 UPDATE 我想澄清一下 我想使用 sql 查询将 XML 数据转发到 php 脚本 Here s 关于从 MySQL S
  • 来自数据库的 jfreechart 散点图

    如何使用java中的jfreechart绘制mysql数据库表中数据的散点图 我使用过 Swing 库 任何链接都会有帮助 我搜索了谷歌但找不到理解的解决方案 如果您有代码 请提供给我 实际上我确实做了条形图并使用 jfreechart 绘
  • MYSQL:如何在同一查询中联接两个表,两次引用同一个表

    我有两张桌子 我正在尝试将下面的示例两个表与表 1 引用表 2 两次结合起来 例如 如果我查看表 1 组 2 和成员 7 它应该查找表 2 中的 ID 并给出输出 Group Members Name Name 2 7 Blue Dog T
  • 重写 URL,将 ID 替换为查询字符串中的标题

    我对 mod rewrite 很陌生 但我做了一些搜索 但找不到这个问题的答案 我有一个网站 它只有一个 PHP 页面 根据查询字符串中传递给它的 ID 提供数十页内容 我想重写 URL 以便此 ID消失并替换为从数据库中提取的页面标题 例
  • 我的线程图像生成应用程序如何将其数据传输到 GUI?

    Mandelbrot 生成器的缓慢多精度实现 线程化 使用 POSIX 线程 Gtk 图形用户界面 我有点失落了 这是我第一次尝试编写线程程序 我实际上并没有尝试转换它的单线程版本 只是尝试实现基本框架 到目前为止它是如何工作的简要描述 M
  • 在脚本内使用不带密码的 sudo

    由于某种原因 我需要作为用户在没有 sudo 的情况下运行脚本 script sh 该脚本需要 root 权限才能工作 我认为将 sudo 放入 script sh 中是唯一的解决方案 让我们举个例子 script sh bin sh su
  • phpActiveRecord 日期时间格式不正确

    当尝试使用 phpActiveRecord 在表中创建记录时 出现以下错误 Invalid datetime format 1292 Incorrect datetime value 2013 06 20 11 59 08 PDT for

随机推荐

  • 【STM32外部中断使用方法】

    标题STM32外部中断使用方法 1 初始化对应引脚IO 2 初始化中断并配备优先级 void Forword Backword init void EXTI InitTypeDef EXTI InitStructure NVIC InitT
  • 腾讯云S4服务器和SN3ne性能差距大么?如何选择?

    腾讯云服务器SN3ne是标准网络优化型 S4是标准型云服务器 SN3ne实例CPU采用2 5GHz Intel Xeon Skylake 6133 处理器 S4实例CPU采用2 4GHz Intel Xeon Skylake 6148 处理
  • 在SpringBoot项目中配置Redis

    目录 一 前言 二 使用步骤 1 引入start依赖 2 在application yml配置文件中做相应配置 3 配置Redis序列化器 4 将序列化器配置到redisTemplate中 5 封装Redis操作工具类 一 前言 我们知道R
  • #ifdef与#endif的作用及用法

    一般情况下 源程序中所有的行都参加编译 但是有时希望对其中一部分内容只在满足一定条件才进行编译 也就是对一部分内容指定编译的条件 这就是 条件编译 有时 希望当满足某条件时对一组语句进行编译 而当条件不满足时则编译另一组语句 条件编译命令最
  • 论文格式中要求作者加入orcid的链接在名字后边

    论文格式中要求作者加入orcid的链接在名字后边 如下图 使用网上给的各种写法会出现以下问题 1 插入位置不合适 2 出现一个正方形的框 3 所有参考文献带框 与原本论文格式不符 摸索了一个下午 先提供正确的格式 documentclass
  • python字典多键值及重复键值的使用

    在python中使用字典 格式如下 dict key1 value1 key2 value2 在实际访问字典值时的使用格式如下 dict key 多键值 字典的多键值形式如下 dict ke11 key12 value key21 key2
  • python 统计文章单词个数

    代码 def getText txt open article txt r read txt txt lower for ch in lt gt txt txt replace ch return txt hamletTxt getText
  • Android 程序签名问题

    一 多个开发环境具有相同的 debug 签名 在多台机器用 Eclipse 开发 Android 程序的时候 签名不一致导致要反反复复删除原程序才能安装 调试很不爽吧 其实让 Eclipse 用一样的 debug 签名就好了 方法是选中其中
  • 华为OD机试 - 拼接URL(Java)

    题目描述 给定一个url前缀和url后缀 通过 分割 需要将其连接为一个完整的url 如果前缀结尾和后缀开头都没有 需要自动补上 连接符 如果前缀结尾和后缀开头都为 需要自动去重 约束 不用考虑前后缀URL不合法情况 输入描述 url前缀
  • 从零开始学习软件测试-第39天笔记

    接口测试 http消息结构 请求报文 请求行 请求方式 url 协议版本 请求头 空行 请求体 响应报文 响应行 协议版本 状态码 状态消息 响应头 空行 响应体 请求参数类型 path参数 写在路径中的 https xxx xxx com
  • 监控服务器资源定位性能瓶颈,服务端性能监控

    服务端性能监控 内容精选 换一换 JUG Java Salon 11欢迎广大 Java技术开发者或爱好者 参加 Java技术沙龙新一期来了 本次由上海 南京和广东等多地Java用户组 JUG Java User Group 联合主办 还邀请
  • shell排序 C++

    Shell排序算法严格来说基于插入排序的思想 又称为希尔排序或缩小增量排序 Shell排序算 法的排序流程如下 1 将有 n个元素的数组分成n 2 个数字序列 第 1 个数据和第n 2 1 个数据为一对 2 一次循环使每一个序列对排好顺序
  • C# 线程浅谈 (二)

    上一篇写Thread 这一篇写Task 优缺点 百度吧 反正看那个好用用那个 创建控制台程序 新建TaskDom类 还是看怎么创建 怎么使用 怎么带参 怎么返回值 这里都体现了 class TaskDom int count 0 publi
  • 并发库:同步工具类

    1 Semaphore计数信号量 Semaphore计数信号量维护了一个许可集 用于限制访问某些资源的线程数目 并提供同步机制 通俗来说 就是可以控制让多个线程拿到许可 拿到许可的线程可以并发管理同一个资源 这些拿到许可的线程可以看做一个整
  • react、umi、request设置请求头添加token

    1 在utils文件夹里的request js里添加 添加请求头 request interceptors request use url options gt 判断本地session是否有数据 如果有就得到token 并付给请求头 if
  • 循环链表详解(循环单链表/循环双链表)

    目录 一 循环单链表 二 循环双链表 一 循环单链表 循环单链表的表尾结点的next指针总是指向头结点 所以在初始化循环单链表的时候 需要记得将头结点的next指针指向头结点自己 判断循环单链表是否为空 只要判断头结点的next指针是否指向
  • Outlook后台启动及自动隐藏

    1 开机启动 修改注册表 把outlook添加到开机选项中 2 最小化时隐藏 a 启动outlook b 右下角任务栏中 右键勾选 最小化时隐藏 即可 3 将outlook关闭按钮修改为最小化 a 访问 http www reliefjet
  • Python3,网站搭建之数据库表设计及数据存储!文末的彩蛋,我酸了~

    搭建自己的网站 是作为一个码农成功标志之一 那其他成功标志有啥呢 嘿 左手搂着白富美 右手撸着小烧烤 脚底踩着桑塔纳 嗯 这么潇洒的人生 就从数据库表设计及数据存储开始吧 数据库表设计及存储数据 1 爬取数据 2 创建数据库 2 1 创建数
  • 校oj200——带结构体的分数归并排序+字典序人名

    200 给出班里某门课程的成绩单 请你按成绩从高到低对成绩单排序输出 如果有相同分数则名字字典序小的在前 时间限制 2 sec 内存限制 128 MB 试题描述 给出班里某门课程的成绩单 请你按成绩从高到低对成绩单排序输出 如果有相同分数则
  • 在Centos7环境安装MySQL

    0 说明 安装与卸载中 用戶全部切换成为root 初期 mysql先使用root进行 尽快适应mysql语句 后期学习用戶管理 再考虑新建普通用戶 1 从普通用户切换到root用户 2 在root用户目录下创建mysql文件夹 之后MySQ