记一次mysql小版本升级

Posted jcyh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一次mysql小版本升级相关的知识,希望对你有一定的参考价值。

最近对后端组件进行安全扫描时,发现了一些轻微漏洞,为了避免后续部署后安全扫描出现问题,决定对mysql做一次版本升级。升级的原则是对mysql的二进制文件进行升级,若有主备节点,先升级从节点升级完成后将其提为主节点,然后再升级原主节点。

升级步骤:

mysql当前版本:5.7.24

目标版本:5.7.28

 

前期准备:

1.待升级mysql安装包:mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz,下载地址:https://dev.mysql.com/downloads/mysql/

技术图片

 

 

 

 

 

 

 

 

 

 

 

 

 

2.备份mysql数据:

./mysqldump -u<ACCOUNT> -p<PASSWORD> -S mysql.sock -F -A -B |gzip > ~/mysql_backup/20191020/mysqlbak.sql.gz

3.备份配置文件:

cp <mysql-root>/*.cnf ~/mysql_backup/20191020/

 

步骤(完整流程包含准备内容):

 

1.备份数据库: 

mysqldump -u<username> -p<password> -S mysql.sock -F -A -B |gzip >/home/user/backup/20191029/mysqlbak.sql.gz

 

 

2.停止mysql数据库,我是使用supervisor做进程管理,所以直接执行命令:

supervisorctl stop mysql

tip:若未使用守护进程则使用如下命令关闭mysql:

mysql -u root -p -S /data/mysql3308/mysql3308.sock --execute="SET GLOBAL innodb_fast_shutdown=0"
mysqladmin -u root -p -S /data/mysql3308/mysql3308.sock shutdown

 

3.备份启动配置文件以及启动脚本:

cp mysql/*.cnf /home/user/backup/20191029/
### 启动脚本是自己写的用于supervisor,正常mysql是没有这个的
cp mysql/bin/start.sh /home/user/backup/20191029/

 

4.解压新版本的压缩包至安装目录:

tar -zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz -C <install-root>

 

5.将mysql的软连接指向新版本的二进制文件

mv mysql mysql.20191029
ln -s <install-root>/mysql-5.7.28-linux-glibc2.12-x86_64 mysql

 

6.将备份的启动配置文件以及启动脚本拷贝至新的mysql当中:

cp /home/user/backup/20191029/*.cnf <install-root>/mysql/
cp /home/user/backup/20191029/bin/start.sh<install-root>/mysql/bin

 

7.启动mysql:

supervisorctl start mysql

 

8.检查所有表是否与当前版本兼容,并更新系统库(这个版本因为比较小所以系统库的内容是兼容的):

mysql_upgrade -u<user> -p<password> -S mysql.sock

 

9.重新启动mysql,让对系统表的改动生效:

supervisorctl restart mysql

 

以上是关于记一次mysql小版本升级的主要内容,如果未能解决你的问题,请参考以下文章

记一次hive版本升级

记一次mariadb升级故障

记一次 React Native 大版本升级过程——从0.40到0.59

记一次 Ubuntu 内核升级故障处理

记一次脑残的故障处理-万兆网卡驱动升级

记一次uboot升级过程的两个坑