记一次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

原文地址:https://www.cnblogs.com/JCYH/p/mysql_update.html

时间: 2024-08-29 18:04:13

记一次mysql小版本升级的相关文章

【夯实Mysql基础】记一次mysql语句的优化过程!

1. [事件起因] 今天在做项目的时候,发现提供给客户端的接口时间很慢,达到了2秒多,我第一时间,抓了接口,看了运行的sql,发现就是 2个sql慢,分别占了1秒多. 一个sql是 链接了5个表同时使用了 2个 order by和 1个limit的分页 sql. 一个sql是上一个sql的count(*),即链接了5个表,当然没有limit了(取总数). 2. [着手优化] 1)[优化思路] 第一条是 做client调用 service层的数据缓存 第二条就是 优化sql本身. 这里着重讲一下

oracle的环境配置-oracle的小版本升级

oracle的小版本升级:从10.2.0.1升级到10.2.0.4 需要准备的升级包:p6810189_10204_Linux-x86 1.当前版本 SQL> conn /as sysdbaConnected.SQL> select * from v$version; BANNER----------------------------------------------------------------Oracle Database 10g Enterprise Edition Relea

Zabbix小版本升级

需求:生产环境的zabbix版本为2.2.11(RPM包安装),由于一个高危漏洞,需要升级到2.2.14来修复.请参考连接 http://bobao.360.cn/news/detail/3462.html 由于是2.2小版本升级,而2.2.14版本对PHP版本没有要求,所以不需要升级数据库和PHP. 以下是升级过程 1.停止zabbix server上的相关服务 停止zabbix-server.zabbix-agent.zabbix-java-gateway.httpd服务 2.数据备份 创建

记一次MySql入库后,文本出现乱码的问题

最近采用ADO.NET开发了一个工具,解析了一条如下的日志并入库(MySql) 2014-08-19 00:37:10 [INFO] roleName=♣丶伊诺,orderId=1408190037102121039,price=10.0,point=100 发现入库后的roleName中的♣显示为□乱码了,一开始以为是表的编码问题,确认后是utf-8编码木有问题,后来又排除了文件编码及代码中的字符串都没有乱码的问题,凭经验分析,可能是连接字符串的问题吧,后来把MySql的连接字符串中也加入了u

servlet连接mysql小程序

1.我们会自己编写java代码与mysql通信,但是怎么在网络的环境下,用servlet去跟mysql连接 2.在基本的servlet程序下,我们再添加连接数据库的部分 1 import javax.servlet.http.HttpServlet; 2 import javax.servlet.http.HttpServlet;import java.io.IOException; 3 import java.io.*; 4 import javax.servlet.http.HttpServ

记一次mysql性能优化过程

摘要: 所谓mysql的优化,三分是配置的优化,七分是sql语句的优化,通过一些案例分析,希望给大家在工作中带来一些思路 由于配置是运行过那么长时间,很稳定,基本上不考虑,所以本次主要是sql的优化,并且集中在开源中国的个人空间.下面是这次优化的数据库版本: 案例一:粉丝查询优化 粉丝查询有2条sql --查询所有粉丝 SELECT user FROM osc_friends f INNER JOIN osc_users u ON u.id=f.user AND f.friend=? AND f

mysql小整理

今日使用mysql的一些小知识 1.登陆mysql 本机:命令界面 mysql - u username -p  password 登陆到指定机器:端口未修改 mysql - u username - h  ip地址 - p assword 登录到指定机器:端口修改 mysql - u username - h  ip地址 --port  端口号 -p assword 通过界面查看数据库支持的引擎:通过navicat工具可以查看到 ->information_schema库->engines表

记一次MySQL迁移并从MySQL5.6升级到5.7后查询慢了几十倍的问题

起因 因为生产环境数据量越来越大,客户越来越多,项目功能也越来越多,项目本身也越来越多,导致之前的服务器内存.硬盘都已经渐渐的不够用了,当时出现了2种解决方案,增加服务器配置和新购服务器,但是就算是新增硬盘,也需要对数据库进行迁移,所以就采用了新购服务器的方案,并且因为之前是高效云盘,出现过IO占满的情况,所以对于新购的服务器采用了SSD硬盘,理论上速度会飞起来了,实际上我在新服务器上安装MySQL5.7,因为听说MySQL5.7性能提升了N倍,还支持json(虽然对我们没什么用),但是毕竟My

mysql小计

1. 在windows下,安装完mysql后,建议把数据目录(data目录)移动到非系统目录,避免系统出问题的时候还原. 在d盘创建一个mysqldata 给新文件增加权限NetworkService 把data下的数据全拷贝过去 修改my.ini中的选项 datadir=D:\mysqldata(注意,要\,使用/可能启动失败) 重启服务或是直接重启系统 2. mysql connect c++安装要与我们的应用对应,应用是32位,connect就要是32位的,与数据库是32还是64无关 3.