升级-小版本升级【5.6.42-->5.6.48】记得升级前先备份
了解新版本新增
了解已被废弃功能与参数
建议升级到大版本最新版本,再升级到下一个版本。例如5.6先升级到最后一个小版本,再升级到5.7
不支持跳过版本的升级。例如,不支持从MySQL 5.5直接升级到5.7。
支持小版本跳跃升级
先在测试环境测试没问题后再上生产
参数最好自行看下有没有哪些不一致的改变
升级前 mysql -uroot -p -e"show variables;" > /opt/mysql5642.txt
升级后 mysql -uroot -p -e"show variables;" > /opt/mysql5648.txt
升级有两种方式in-place upgrade
关闭当前mysql,替换二进制包,在现有的数据目录上重启MySQL,并运行mysql_upgrade.logical upgrade
使用mysqldump 或 mydumper 导入导出数据,实现版本的升级。
in-place方式升级旧版本 5.6.42
新版本 5.6.48
系统: CentOS 7.6
1-解压需要更新的版本软件包
# 解压
tar zxf mysql-5.6.48-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
# 创建软链
cd /usr/local/
ln -s /usr/local/mysql-5.6.48-linux-glibc2.12-x86_64/ mysql5648
2-XA事务检查
mysql -S /data/mysql/mysql.sock -uroot -p
# XA检查是否有值
mysql> XA RECOVER;
Empty set (0.00 sec)
# 若有值,则需要 COMMIT 或 ROLLBACK xid
mysql> XA COMMIT xid;
或
mysql> XA ROLLBACK xid;
3-完全关闭MySQL
# 配置MySQL执行慢关机,InnoDB在关闭之前执行完全清除和更改缓冲区合并
mysql -S /data/mysql/mysql.sock -uroot -p --execute="SET GLOBAL innodb_fast_shutdown=0";
# 设置完参数后关闭MySQL
mysqladmin -u root -p shutdown
4-更换程序
[root@initnode local]# mv /usr/local/mysql mysql5642
[root@initnode local]# mv /usr/local/mysql5648 mysql
更换为
5-启动mysql
mysqld_safe --user=mysql &
6-执行升级
[root@initnode ~]# mysql_upgrade -u root -p
Enter password:
Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
Running 'mysqlcheck' with connection arguments: '--port=13306' '--socket=/data/mysql/mysql.sock'
Warning: Using a password on the command line interface can be insecure.
Running 'mysqlcheck' with connection arguments: '--port=13306' '--socket=/data/mysql/mysql.sock'
Warning: Using a password on the command line interface can be insecure.
mysql.columns_priv OK
mysql.db OK
mysql.event OK
mysql.func OK
mysql.general_log 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.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
Running 'mysql_fix_privilege_tables'...
Warning: Using a password on the command line interface can be insecure.
Running 'mysqlcheck' with connection arguments: '--port=13306' '--socket=/data/mysql/mysql.sock'
Warning: Using a password on the command line interface can be insecure.
Running 'mysqlcheck' with connection arguments: '--port=13306' '--socket=/data/mysql/mysql.sock'
Warning: Using a password on the command line interface can be insecure.
drop_test.d_tab2 OK
OK
6-再次关闭启动即可
mysqladmin -uroot -p shutdown
mysqld_safe --user=mysql &