CentOS7 Yum方式安装MySQL8或者MySQL5.7 ,

步骤2.3 可以选择你是安装MySQL8 还是MySQL537.

1 安装前清理工作

1.1 清理原有的mysql数据库;

使用以下命令查找出安装的mysql软件包和依赖包:

  1. rpm -pa | grep mysql

显示结果如下: 当然如果没有的话,就不用删除

mysql80-community-release-el7-1.noarch
mysql-community-server-8.0.11-1.el7.x86_64
mysql-community-common-8.0.11-1.el7.x86_64
mysql-community-libs-8.0.11-1.el7.x86_64
mysql-community-client-8.0.11-1.el7.x86_64

使用以下命令依次删除上面的程序

yum remove mysql-xxx-xxx-

删除mysql的配置文件,卸载不会自动删除配置文件,首先使用如下命令查找出所用的配置文件;

find / -name mysql

可能的显示结果如下:

/etc/logrotate.d/mysql
/etc/selinux/targeted/active/modules/100/mysql
/etc/selinux/targeted/tmp/modules/100/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/bin/mysql
/usr/lib64/mysql
/usr/local/mysql

根据需求使用以下命令 依次 对配置文件进行删除

rm -rf /var/lib/mysql

1.2 删除MariaDB的文件,

由于MySQL在CentOS7中收费了,所以已经不支持MySQL了,取而代之在CentOS7内部集成了mariadb,而安装MySQL的话会和MariaDB的文件冲突,所以需要先卸载掉MariaDB.

使用rpm 命令查找出要删除的mariadb文件;

rpm -pa | grep mariadb

可能的显示结果如下:

mariadb-libs-5.5.56-2.el7.x86_64

删除上面的程序

rpm -e mariadb-libs-5.5.56-2.el7.x86_64

可能出现错误提示如下:

依赖检测失败:

libmysqlclient.so.18()(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要

libmysqlclient.so.18(libmysqlclient_18)(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要

libmysqlclient.so.18(libmysqlclient_18)(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要

使用强制删除:

rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

至此就将原来有的mysql 和mariadb数据库删除了;

2 安装mysql

2.1 下面mysql官网提供的mysql repo源

centos的yum 源中默认是没有mysql的,所以我们需要先去官网下载mysql的repo源并安装;

mysql官网下载链接:mysql repo下载地址 如下:

image.png

方式1: 使用wget命令下载

image.png
鼠标挪到 No thanks, just start my download. 上文字上,右键 复制链接地址 ,发现是https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm 这个地址.

然后linux终端执行命令: wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm 进行下载


[root@zjj101 ~]# wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
--2021-10-10 15:30:30--  https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
正在解析主机 dev.mysql.com (dev.mysql.com)... 137.254.60.11
正在连接 dev.mysql.com (dev.mysql.com)|137.254.60.11|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 302 Found
位置:https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm [跟随至新的 URL]
--2021-10-10 15:30:48--  https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
正在解析主机 repo.mysql.com (repo.mysql.com)... 184.50.240.231
正在连接 repo.mysql.com (repo.mysql.com)|184.50.240.231|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:26024 (25K) [application/x-redhat-package-manager]
正在保存至: “mysql80-community-release-el7-3.noarch.rpm”

100%[===========================================================================================================>] 26,024       110KB/s 用时 0.2s

2021-10-10 15:30:50 (110 KB/s) - 已保存 “mysql80-community-release-el7-3.noarch.rpm” [26024/26024])

[root@zjj101 ~]# ls
anaconda-ks.cfg  mysql80-community-release-el7-3.noarch.rpm

方式2: 手动下载并且上传到linux指定位置

QQ截图20211010152922.png

此时会下载一个 mysql80-community-release-el7-3.noarch.rpm 文件,自己将文件上传到虚拟机系统的指定目录下

2.2 安装 yum repo文件并更新 yum 缓存;

找到 你刚刚mysql80-community-release-el7-3.noarch.rpm 文件所在的文件夹内

执行下 这个命令 : rpm -ivh mysql80-community-release-el7-3.noarch.rpm

[root@zjj101 ~]# ls
anaconda-ks.cfg  mysql80-community-release-el7-3.noarch.rpm
[root@zjj101 ~]# rpm -ivh mysql80-community-release-el7-3.noarch.rpm
警告:mysql80-community-release-el7-3.noarch.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:mysql80-community-release-el7-3  ################################# [100%]
[root@zjj101 ~]#

执行结果:

会在/etc/yum.repos.d/目录下生成两个repo文件 :
mysql-community.repo 和 mysql-community-source.repo 文件

[root@zjj101 ~]# cd /etc/yum.repos.d/
[root@zjj101 yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo  mysql-community.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo  docker-ce.repo     mysql-community-source.repo
[root@zjj101 yum.repos.d]#

更新 yum 命令:

分别依次执行下面这两个命令:

yum clean all
yum makecache

2.3 使用 yum安装mysql

当我们在使用yum安装mysql时,yum默认会从yum仓库中安装mysql最新的GA版本;如何选择自己的版本;

第一步: 查看mysql yum仓库中mysql版本,使用如下命令 yum repolist all | grep mysql

[root@zjj101 yum.repos.d]# yum repolist all | grep mysql
mysql-cluster-7.5-community/x86_64   MySQL Cluster 7.5 Community    禁用
mysql-cluster-7.5-community-source   MySQL Cluster 7.5 Community -  禁用
mysql-cluster-7.6-community/x86_64   MySQL Cluster 7.6 Community    禁用
mysql-cluster-7.6-community-source   MySQL Cluster 7.6 Community -  禁用
mysql-cluster-8.0-community/x86_64   MySQL Cluster 8.0 Community    禁用
mysql-cluster-8.0-community-source   MySQL Cluster 8.0 Community -  禁用
mysql-connectors-community/x86_64    MySQL Connectors Community     启用:    212
mysql-connectors-community-source    MySQL Connectors Community - S 禁用
mysql-tools-community/x86_64         MySQL Tools Community          启用:    132
mysql-tools-community-source         MySQL Tools Community - Source 禁用
mysql-tools-preview/x86_64           MySQL Tools Preview            禁用
mysql-tools-preview-source           MySQL Tools Preview - Source   禁用
mysql55-community/x86_64             MySQL 5.5 Community Server     禁用
mysql55-community-source             MySQL 5.5 Community Server - S 禁用
mysql56-community/x86_64             MySQL 5.6 Community Server     禁用
mysql56-community-source             MySQL 5.6 Community Server - S 禁用
mysql57-community/x86_64             MySQL 5.7 Community Server     禁用
mysql57-community-source             MySQL 5.7 Community Server - S 禁用
mysql80-community/x86_64             MySQL 8.0 Community Server     启用:    283
mysql80-community-source             MySQL 8.0 Community Server - S 禁用

可以看到 MySQL 5.5 5.6 5.7为禁用状态 而MySQL 8.0为启用状态;

第二步 使用 yum-config-manager 命令修改相应的版本为启用状态最新版本为禁用状态

方式1:使用配置的方式

如果是安装MySQL5.7的执行:

yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community

如果是安装MySQL8.0的执行:

yum-config-manager --disable mysql57-community
yum-config-manager --enable mysql80-community

方式2: 编辑 mysql repo文件

cat /etc/yum.repos.d/mysql-community.repo

CentOS7 Yum方式安装MySQL8或者MySQL5.7 - 图4

将相应版本下的enabled改成 1 即可;

2.4查看安装后的效果

执行命令: yum repolist all | grep mysql

[root@zjj101 yum.repos.d]# yum repolist all | grep mysql
mysql-cluster-7.5-community/x86_64   MySQL Cluster 7.5 Community    禁用
mysql-cluster-7.5-community-source   MySQL Cluster 7.5 Community -  禁用
mysql-cluster-7.6-community/x86_64   MySQL Cluster 7.6 Community    禁用
mysql-cluster-7.6-community-source   MySQL Cluster 7.6 Community -  禁用
mysql-cluster-8.0-community/x86_64   MySQL Cluster 8.0 Community    禁用
mysql-cluster-8.0-community-source   MySQL Cluster 8.0 Community -  禁用
mysql-connectors-community/x86_64    MySQL Connectors Community     启用:    212
mysql-connectors-community-source    MySQL Connectors Community - S 禁用
mysql-tools-community/x86_64         MySQL Tools Community          启用:    132
mysql-tools-community-source         MySQL Tools Community - Source 禁用
mysql-tools-preview/x86_64           MySQL Tools Preview            禁用
mysql-tools-preview-source           MySQL Tools Preview - Source   禁用
mysql55-community/x86_64             MySQL 5.5 Community Server     禁用
mysql55-community-source             MySQL 5.5 Community Server - S 禁用
mysql56-community/x86_64             MySQL 5.6 Community Server     禁用
mysql56-community-source             MySQL 5.6 Community Server - S 禁用
mysql57-community/x86_64             MySQL 5.7 Community Server     启用:    524
mysql57-community-source             MySQL 5.7 Community Server - S 禁用
mysql80-community/x86_64             MySQL 8.0 Community Server     禁用
mysql80-community-source             MySQL 8.0 Community Server - S 禁用
[root@zjj101 yum.repos.d]#

MySQL5.7变成启用状态了,(因为我是要安装MySQL5.7版本)

mysql57-community/x86_64 MySQL 5.7 Community Server 启用: 524

2.5 安装mysql 命令如下:

执行命令: yum install mysql-community-server ,执行完了 ,出现提示,直接输入y 就耐心等待即可.

yum install mysql-community-server

3.开启mysql 服务

输入命令: systemctl start mysqld.service
需要耐心等待30秒左右

[root@zjj101 yum.repos.d]# systemctl start mysqld.service
[root@zjj101 yum.repos.d]#

4.获取初始密码登录mysql并且修改初始密码

4.1获取初始密码

mysql在安装后会创建一个root@locahost账户,并且把初始的密码放到了/var/log/mysqld.log文件中;
输入命令: cat /var/log/mysqld.log | grep password

[root@zjj101 yum.repos.d]# cat /var/log/mysqld.log | grep password
2021-10-10T08:04:20.555632Z 1 [Note] A temporary password is generated for root@localhost: ry1Bh?#xI(qF

ry1Bh?#xI(qF 就是初始密码

4.2使用初始密码登录mysql

mysql -u root -p

然后就提示输入密码,输入密码的时候,此时控制台不会显示内容,但是是正在输入密码, 然后就是区分大小写.输入完了,登录通过需要立马确认密码操作.

4.3修改初始密码为root:

修改密码为root命令:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

如果出现了ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 意思是你密码设置的太简单了,

执行命令设置密码略:

set global validate_password_policy=LOW;  # 设置为low,意思是只验证密码的长度
set global validate_password_length=4 ;  # 设置密码长度最少为4位

然后再重新执行 ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘root’; 去重置密码.

5. 将mysql 服务加入开机启动项,并启动mysql进程

依次执行下面的命令:

将mysql 服务加入开机启动项 命令: systemctl enable mysqld.service
启动MySQL命令 : systemctl start mysqld.service
查看MySQL服务是否启动: service mysqld status

下面第五行 Active: active (running) 说明启动了

[root@zjj101 yum.repos.d]# service mysqld status
Redirecting to /bin/systemctl status mysqld.service
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since 日 2021-10-10 16:04:22 CST; 8min ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
 Main PID: 45581 (mysqld)
   CGroup: /system.slice/mysqld.service
           └─45581 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

10月 10 16:04:18 zjj101.localdomain systemd[1]: Starting MySQL Server...
10月 10 16:04:22 zjj101.localdomain systemd[1]: Started MySQL Server.

6.开启MySQL能远程连接

6.1 修改my.cfg

正常情况下初次安装MySQL是无法在你本地远程连接这个MySQL的

使用 MySQL rpm包默认安装MySQL的位置为 /usr/share/mysql

查看 my.cfg位置命令: mysql —help|grep ‘my.cnf’

[root@zjj101 mysql]# mysql --help|grep 'my.cnf'
                      order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf

执行 : vi /etc/my.cnf 修改my.cnf文件:
添加下面内容 ,随便在哪个位置添加都可以,添加完了保存这个文件

bind-address        = 0.0.0.0

6.2 登录MySQL修改host

# 登录 ,自己自行输入密码
mysql -u root -p

# 依次执行下面的语句
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql> select host, user from user;
+-----------+---------------+
| host      | user          |
+-----------+---------------+
| %         | root          |
| localhost | mysql.session |
| localhost | mysql.sys     |
+-----------+---------------+
3 rows in set (0.00 sec)
# 退出MySQL终端
mysql> exit
Bye

6.3重启MySQL服务器

执行命令: service mysqld restart

[root@zjj101 ~]# service mysqld restart
Redirecting to /bin/systemctl restart mysqld.service

再次尝试就可以在宿主机用Navicat 或者 Datagrip 远程登录上去了