CentOS7 Yum方式安装MySQL8或者MySQL5.7 ,
步骤2.3 可以选择你是安装MySQL8 还是MySQL537.
1 安装前清理工作
1.1 清理原有的mysql数据库;
使用以下命令查找出安装的mysql软件包和依赖包:
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下载地址 如下:
方式1: 使用wget命令下载
鼠标挪到 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指定位置
此时会下载一个 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
将相应版本下的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 远程登录上去了