目录
本文仅适合使用当前数据库为 RPM 安装方式
升级前版本
使用 mysql -V 命令查看当前版本
[dev@gxmysql02 ~]$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[dev@gxmysql02 ~]$ mysql -V
mysql Ver 14.14 Distrib 5.7.26, for Linux (x86_64) using EditLine wrapper
背景
由于客户业务等保接入要求,生产环境MySQL数据库被扫描出了高危漏洞
查看漏洞详细信息,建议升级到新版本解决
经检查,服务器上的MYSQL安装方式为RPM
[dev@gxmysql02 ~]$ rpm -qa | grep mysql
mysql-community-common-5.7.26-1.el7.x86_64
mysql-community-server-5.7.26-1.el7.x86_64
mysql-community-libs-5.7.26-1.el7.x86_64
mysql-community-libs-compat-5.7.26-1.el7.x86_64
mysql-community-client-5.7.26-1.el7.x86_64
升级
下载软件包
官方获取下载连接
https://downloads.mysql.com/archives/community/
为了方便,直接下载完整的tar包,下载完成后并解压备用
https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.39-1.el7.x86_64.rpm-bundle.tar
[dev@gxmysql02 ~]$ cd mysql-5.7.39/
[dev@gxmysql02 mysql-5.7.39]$ wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.39-1.el7.x86_64.rpm-bundle.tar
[dev@gxmysql02 mysql-5.7.39]$ tar -xvf mysql-5.7.39-1.el7.x86_64.rpm-bundle.tar
[dev@gxmysql02 mysql-5.7.39]$ ll
total 1086276
-rw-rw-r-- 1 tmn tmn 556165120 2022-06-13 14:14 mysql-5.7.39-1.el7.x86_64.rpm-bundle.tar
-rw-r--r-- 1 tmn tmn 29107248 2022-06-13 14:07 mysql-community-client-5.7.39-1.el7.x86_64.rpm
-rw-r--r-- 1 tmn tmn 318320 2022-06-13 14:07 mysql-community-common-5.7.39-1.el7.x86_64.rpm
-rw-r--r-- 1 tmn tmn 4383060 2022-06-13 14:07 mysql-community-devel-5.7.39-1.el7.x86_64.rpm
-rw-r--r-- 1 tmn tmn 48149356 2022-06-13 14:07 mysql-community-embedded-5.7.39-1.el7.x86_64.rpm
-rw-r--r-- 1 tmn tmn 23316500 2022-06-13 14:07 mysql-community-embedded-compat-5.7.39-1.el7.x86_64.rpm
-rw-r--r-- 1 tmn tmn 133181836 2022-06-13 14:07 mysql-community-embedded-devel-5.7.39-1.el7.x86_64.rpm
-rw-r--r-- 1 tmn tmn 2717964 2022-06-13 14:07 mysql-community-libs-5.7.39-1.el7.x86_64.rpm
-rw-r--r-- 1 tmn tmn 1264480 2022-06-13 14:07 mysql-community-libs-compat-5.7.39-1.el7.x86_64.rpm
-rw-r--r-- 1 tmn tmn 186717812 2022-06-13 14:08 mysql-community-server-5.7.39-1.el7.x86_64.rpm
-rw-r--r-- 1 tmn tmn 126996412 2022-06-13 14:08 mysql-community-test-5.7.39-1.el7.x86_64.rpm
备份并停止数据库
- 备份当前的数据库配置文件 my.cnf
- 备份数据(如果需要,可利用数据盘快照等)
停止数据库服务 (Root账号去掉sudo)
[dev@gxmysql02 ~]$ sudo systemctl stop mysqld
升级安装
按照如下顺序,更新组件。如果先更新server,可能会出现缺失依赖问题
[dev@gxmysql02 ~]$ sudo rpm -Uvh mysql-community-common-5.7.39-1.el7.x86_64.rpm --nodeps
[dev@gxmysql02 ~]$ sudo rpm -Uvh mysql-community-libs-5.7.39-1.el7.x86_64.rpm --nodeps
[dev@gxmysql02 ~]$ sudo rpm -Uvh mysql-community-libs-compat-5.7.39-1.el7.x86_64.rpm --nodeps
[dev@gxmysql02 ~]$ sudo rpm -Uvh mysql-community-client-5.7.39-1.el7.x86_64.rpm --nodeps
[dev@gxmysql02 ~]$ sudo rpm -Uvh mysql-community-server-5.7.39-1.el7.x86_64.rpm --nodeps
启动服务
[dev@gxmysql02 ~]$ sudo systemctl start mysqld
使用mysql_update命令升级表结构,此时需要数据库root账号并键入密码
[dev@gxmysql02 ~]$ mysql_upgrade -u root -p
升级完成后重启MySQL服务
[dev@gxmysql02 ~]$ sudo systemctl restart mysqld
升级后检查
[dev@gxmysql02 ~]$ mysql -V
mysql Ver 14.14 Distrib 5.7.39, for Linux (x86_64) using EditLine wrapper
[参考资料]