项目运维过程中,被扫描出MySQL安全漏洞,需要通过升级MySQL版本来解决问题,服务器上原本安装的是mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz,本文介绍的是将mysql升级至mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz

下载所需软件

下载xtrabackup

数据库软件在升级前,需要对原有数据库进行备份,这里采用的xtrabackup进行备份还原。需要下载libev与percona-xtrabackup
(1)下载libev

https://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el6/en/x86_64/rpmforge/RPMS/libev-4.15-1.el6.rf.x86_64.rpm

(2)下载percona-xtrabackup

CentOS6

https://repo.percona.com/yum/release/6/RPMS/x86_64/percona-xtrabackup-24-2.4.9-1.el6.x86_64.rpm

CentOS7

https://repo.percona.com/yum/release/7/RPMS/x86_64/percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm

下载MySQL

登录MySQL官方网站,下载指定版本的MySQL安装包

https://dev.mysql.com/downloads/mysql/

在这里插入图片描述

将软件上传至服务器

通过SFTP将安装包上传至opt目录
在这里插入图片描述

安装xtrabackup

cd /opt/xtrabackup/
ll
rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm
# CentOS6
rpm -ivh percona-xtrabackup-24-2.4.9-1.el6.x86_64.rpm
# CentOS7
rpm -ivh percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm

在这里插入图片描述

使用xtrabackup备份MySQL数据库

(1)对mysql做一个全量备份。–host指定mysql主机,–port指定mysql数据库服务端口,–user指定连接数据库的用户名,–password指定连接数据库的密码,/opt/mysqldb/指定备份文件存储路径。

innobackupex --no-timestamp --host=127.0.0.1 --port=3306 --user=root --password=123456 --parallel=5 /opt/mysqldb/

等到出现“completed OK!”就说明备份完成。
在这里插入图片描述
如果mysql数据库有做主从复制,执行以下语句,备份日志。

innobackupex --host=127.0.0.1 --port=3306 --apply-log /opt/mysqldb/

在这里插入图片描述

升级MySQL

执行完备份后,停止mysql服务,对原有MySQL进行卸载,并重新安装。

停止MySQL服务

在这里插入图片描述

卸载现有MySQL

这里直接将原有版本的mysql目录进行重新命名。

cd /usr/local/
mv mysql mysql_bak

在这里插入图片描述

安装新版MySQL

在之前的教程中有介绍了MySQL的安装,这里就不在说明,具体参考:https://blog.csdn.net/cpeiqing/article/details/109113499

使用xtrabackup还原

在使用xtrabackup还原MySQL数据之前,要先停止正在运行的mysql数据库,同时将/usr/local/mysql/database/进行备份删除。

service mysql stop
mv /usr/local/mysql/database/ /usr/local/mysql/database_bak

在这里插入图片描述
执行innobackupex还原数据库

innobackupex --copy-back /opt/mysqldb/

出现“completed OK!”说明还原成功
在这里插入图片描述
检查一下database目录,确定是否还原成功
在这里插入图片描述

启动MySQL数据库

启动mysql数据库,检查是否还原成功。
在这里插入图片描述

Logo

更多推荐