- 注意大小写配置,必须统一。(lower_case_table_names = 1,0为区分,1为不区分)
- 其他配置用新版本,根据机器配置调整。
- 关闭数据库前,必须执行(set global innodb_fast_shutdown=0)
- 执行以下语句,第一行必须执行。(设置为0时,InnoDB关闭的最慢,需要清除所有的undo log(除了XA prepare 的事务),完成change buffer的合并,将脏页刷盘,关闭redo log。)
# mysql --user root --password --execute="set global innodb_fast_shutdown=0"
# service mysqld stop
- 物理备份5.6数据库(过大就不备份)
- 安装mysql 5.7 直接指定5.6的data目录,或者docker用5.7的容器直接挂在5.6的data目录
- 启动mysql 5.7
- 升级, 运行以下命令
mysql_upgrade --password
- 执行一下语句,第一行必须执行。(设置为0时,InnoDB关闭的最慢,需要清除所有的undo log(除了XA prepare 的事务),完成change buffer的合并,将脏页刷盘,关闭redo log。)
# mysql --user root --password --execute="set global innodb_fast_shutdown=0"
# service mysqld stop
- 一样,最好物理备份数据目录
- 安装mysql 8.0 直接指定5.7的data目录,或者docker用8.0的容器直接挂在5.7的data目录
- MySQL 8.0以后会自动升级,等待数据库启动就行。启动时间根据数据量的大小和硬盘读取速度
- 升级完成