记一次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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!