资讯专栏INFORMATION COLUMN

Mysql升级之glibc包升级

IT那活儿 / 3614人阅读
Mysql升级之glibc包升级


从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复制不要开启。


[root@testbin]# mysql_upgrade -uroot -p  -S/u01/mysql33062/demo_demo1/mysql.sock --force
Enterpassword:
Checkingserver version.
Runningqueries to upgrade MySQL server.
Checkingsystem database.
mysql.123                                         OK
mysql.columns_priv                                OK
mysql.db                                          OK
mysql.engine_cost                                 OK
mysql.event                                       OK
mysql.func                                        OK
mysql.general_log                                 OK
mysql.gtid_executed                               OK
mysql.help_category                               OK
mysql.help_keyword                                OK
mysql.help_relation                               OK
mysql.help_topic                                  OK
mysql.innodb_index_stats                          OK
mysql.innodb_table_stats                          OK
mysql.ndb_binlog_index                            OK
mysql.plugin                                      OK
mysql.proc                                        OK
mysql.procs_priv                                  OK
mysql.proxies_priv                                OK
mysql.server_cost                                 OK
mysql.servers                                     OK
mysql.slave_master_info                           OK
mysql.slave_relay_log_info                        OK
mysql.slave_worker_info                           OK
mysql.slow_log                                    OK
mysql.tables_priv                                 OK
mysql.time_zone                                   OK
mysql.time_zone_leap_second                       OK
mysql.time_zone_name                              OK
mysql.time_zone_transition                        OK
mysql.time_zone_transition_type                   OK
mysql.user                                        OK
Thesys schema is already up to date (version 1.5.1).
Found0 sys functions, but expected 22. Re-installing the sys schema.
Upgradingthe sys schema.
Checkingdatabases.
aaaa.demo1                                        OK
sys.sys_config                                    OK
Upgradeprocess completed successfully.
至此,升级完成。查看导入数据是否成功。


总结:升级过程中如果遇到问题,可以多查询资料。操作前做好数据备份,尤其是在生产环境中。




文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129971.html

相关文章

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<