MySQL5.7.26升级至5.7.31
- 下载所需软件
- 下载xtrabackup
- 下载MySQL
- 将软件上传至服务器
- 安装xtrabackup
- 使用xtrabackup备份MySQL数据库
- 升级MySQL
- 停止MySQL服务
- 卸载现有MySQL
- 安装新版MySQL
- 使用xtrabackup还原
- 启动MySQL数据库
项目运维过程中,被扫描出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
(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安装包
将软件上传至服务器
通过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的安装,这里就不在说明,具体参考:
使用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数据库,检查是否还原成功。