当前MySQL Community Server 版本5.7.18,升级目标MySQL Community Server 版本5.7.25
1.前置条件
1.1 准备好目标版本的按转包。
1.2 需停止使用MySQL服务的上层应用。
注意:考虑其他异常情况,增加冗余时间,以确定停服时长
2.升级流程
2.1备份原MySQL数据库所有数据
全库导出
mysqldump -u root -p***** --all-databases > mysql_dump20201024
分库导出
mysqldump -u root -p**** pro > mysql_pro.sql
注:这个备份文件尽量多保存几份,如果一旦丢失,应用将不可恢复。
2.2 Mysql版本升级
rpm -qa |grep mysql
卸载所有关于MySQL的rpm包
rpm -e mysql-devel-5.7.18-8.el7_8.x86_64 --nodeps
rpm -e mysql-server-5.7.18-8.el7_8.x86_64 --nodeps
安装新版本MySQLRPM包:
rpm -ivh mysql-community-devel-5.7.25-1.el7.x86_64.rpm --nodeps
rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm --nodeps
rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm --nodeps
rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm --nodeps
rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm --nodeps
2.3.启动新的MySQL
systemctl start mysqld
若能够正常启动mysql服务,数据可以不需重新导入。
如果报错是因为没有删除原MySQL数据,导致新MySQL初始化失败,
删掉原mysql数据
rm -rf /var/lib/mysql/*
找到root临时密码
cat /var/log/mysqld.log | grep password
2018-06-26T06:19:39.467476Z 1 [Note] A temporary password is generated for root@localhost: AxkSr(0suyuQ
mysql -uroot -pAxkSr(0suyuQ
然后设置权限:
set password='123456';
grant all privileges on *.* to 'root'@'%' identified by '123456';
grant all privileges on *.* to 'root'@'localhost' identified by '123456';
测试客户端登陆使用新密码是否OK。
2.4.数据导入
切到 mysql_dump20201024所在目录下,进入新MySQL
mysql -uroot -p123456
执行: source mysql_dump20201024
没有报错即可。
3.启动应用
4.回退步骤
4.1. 卸载掉新版本的MySQL rpm包
4.2. 安装旧版本的MySQL rpm包
4.3. 导入数据到原MySQL
4.4.启动应用
欢迎关注个人公众号,会不定期更新~