从mysql的官方升级文档来看,MySQL的升级相对来说还是比较简单的。
它支持多种方式的升级,但是MySQL版本众多,不仅有各种大版本,例如5.1,5.5,5.6,5.7等。同一个大版本中也会有各种小版本。
那么官方支持怎么的升级路径呢?
同一个大版本中的小版本可以直接升级,例如:5.6.25到5.6.31。
跨版本升级,但只支持跨一个版本升级,例如5.5到5.6,5.6到5.7。不支持跨多个版本的升级,例如直接从5.5到5.7,可以先从5.5升级到5.6,再从5.6升级到5.7。
今天升级的方式为glibc升级,是从mysql5.7.17升级到mysql5.7.26。
创建测试数据库
mysql>create database aaaa;
QueryOK, 1 row affected (0.00 sec)
在测试数据库中创建测试表:
mysql>create database demo1;
QueryOK, 1 row affected (0.00 sec)
给测试表demo1入数
mysql>select * from demo1;
+----+-----------+
| id| name |
+----+-----------+
| 1| xiaozhang |
| 2| xiaoli |
| 3| laowang |
| 4| ceshi |
+----+-----------+
4 rows in set (0.00 sec)
注:此时建库表为了看升级之后是否数据丢失等
导出数据库
[root@test~]# mysqldump -S /u01/mysql3306/demo_demo1/mysql.sock -uroot -p--all-databases --set-gtid-purged=off >/soft/mysql_bak/mysql5717all.sql
查看当前数据库版本:
停止老数据库:
mysqladmin-uroot -p -S /u01/mysql3306/demo_demo1/mysql.sock shutdown
解压升级包、移动到指定位置并赋权:
tar–zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
mvmysql-5.7.26-linux-glibc2.12-x86_64 /u01/mysql5726
chown–R mysql.mysql /u01
初始化软件
注意:初始化和之前版本不一样了,初始化时有初始化密码的
/u01/mysql5726/bin/mysqld--initialize --user=mysql --basedir=/u01/mysql5726--datadir=/u01/mysql33062/demo_demo1/data
初始化过程中遇到libnuma.so.1问题:
[root@testbin]# /u01/mysql5726/bin/mysqld--defaults-file=/u01/mysql3306/demo_demo1/conf/demo1.cnf--initialize-insecure --user=mysql --basedir=/u01/mysql5726--datadir=/u01/mysql3306/demo_demo1/data
/u01/mysql5726/bin/mysqld:error while loading shared libraries: libnuma.so.1: cannot openshared object file: No such file or directory
解决办法:
1.如果已经安装了libnuma.so.1,先yumremove libnuma.so.1
2.yum -y install numactl.x86_64
拷贝和修改配置文件
Cd/u01/mysql33062/demo_demo1/conf/
Cp/u01/mysql3306/demo_demo1/conf/demo1.cnf.bak .
将老的cnf文件里的路径调整为新的路径:
注:如果用户环境变量里有老的mysqlbin目录位置建议一并修改成新的,方便后期使用。
登录数据库
/u01/mysql5726/bin/mysql-uroot -p -S/u01/mysql33062/demo_demo1/mysql.sock
查看导入前的数据库及版本
导入数据历史备份数据
有时不加-S和mysql.sock的路径会报找不到mysql.sock的错误
mysql-uroot -p -S /u01/mysql33062/demo_demo1/mysql.sock
执行mysql_upgrade升级
mysql_upgrade-S /u01/mysql33062/demo_demo1/mysql.sock -uroot –p
官方提到执行这命令可以让原数据启用到新版本的特性,注意:GTID复制不要开启。
总结:升级过程中如果遇到问题,可以多查询资料。操作前做好数据备份,尤其是在生产环境中。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/129971.html
MySQL双主架构升级实施测试方案 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; m...
MySQL集群MGR升级实施测试方案 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; ...
阅读 1346·2023-01-11 13:20
阅读 1684·2023-01-11 13:20
阅读 1132·2023-01-11 13:20
阅读 1860·2023-01-11 13:20
阅读 4100·2023-01-11 13:20
阅读 2704·2023-01-11 13:20
阅读 1385·2023-01-11 13:20
阅读 3597·2023-01-11 13:20