记一次mysql小版本升级

摘要:
最近对后端组件进行安全扫描时,发现了一些轻微漏洞,为了避免后续部署后安全扫描出现问题,决定对mysql做一次版本升级。升级的原则是对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/

记一次mysql小版本升级第1张

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小版本升级》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇JSON 之GSON 解析java 反射,插件机制,简易插件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

关于mysql的查询优化

由于工作原因,最近甲方客户那边多次反应了他们那边的系统查询速度慢,经过排除之后,发现他们那边的数据库完全没有用到索引,简直坑得一笔,通过慢查询日志分析,为数据表建立了适当的索引之后,查询速度明显的提高上来了,所以这次也总结一下如果进行mysql的优化查询。 1.慢查询 mysql自身是有一个慢查询时间和慢查询记录的,但是在默认情况下,我们的mysql不会记...

MySQL ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)的真正原因

在博客Linux mysql 5.6: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)里面,我介绍了一下安装MySQL后登陆MySQL时会遇到ERROR 1045 (28000): Access denied for user 'root'...

小白也能看懂的mySQL进阶【单表查询】

目录   1.查询基础 SELECT语句基础 列的查询  为列设定别名  常数的查询 过滤表中重复数据 根据WHERE语句来选择记录  注释的书写方法  算术运算符和比较运算符 算术运算符 需要注意NULL  比较运算符 对字符串使用不等号时的注意事项 不能对NULL使用比较运算符 逻辑运算符 NOT运算符  AND运算符和OR运算符 通过括号强化处理 逻...

工作流调度器azkaban(以及各种工作流调度器比对)

1:工作流调度系统的作用: (1):一个完整的数据分析系统通常都是由大量任务单元组成:比如,shell脚本程序,java程序,mapreduce程序、hive脚本等;(2):各任务单元之间存在时间先后及前后依赖关系;(3):为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行; (4):举例说明工作流调度系统的具体作用:   我们可能有这...

MySQL联合多表更新和删除

多表更新在 MySQL 3.23 中,你能够使用 LIMIT # 来确保仅仅有给定的记录行数目被更改。 假设一个 ORDER BY 子句被使用(从 MySQL 4.0.0 開始支持),记录行将以指定的次序被更新。这实际上仅仅有连同 LIMIT 一起才实用。 从 MySQL 4.0.4 開始,你也能够运行一个包括多个表的 UPDATE 的操作: UPDA...

将 excel文件数据导入MySQL数据库中

    第一步:先将Excel文件另存为文本文件(制表符分割) 第二步:将生成的txt文件另存,并修改编码格式utf8; 第三步:将文件放到指定位置,或自己想要的位置: G:city.txt 第四步:避免创建数据库及表出现中文乱码和查看编码方法: 1、创建数据库的时候:CREATE DATABASE `test` CHARACTER SET 'utf8...