在Centos7环境安装MySQL

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

猜你喜欢

转载自blog.csdn.net/SHIE_Ww/article/details/130237260