极客进化岛
技术自由路

【MySQL】MySQL的常用升级方法

  1. 升级方式
    1) 小版本升级
    使用mysql_upgrade升级不可跳级,从5.1升级到5.6,需要先升级到5.5;这种适合小版本升级。
    MySQL升级本质上是对数据字典的升级,数据字典有:mysql、information_schema、performance_schema、sys schema。
    2)大版本升级
    logical upgrade:
    适合不同操作系统的MySQL升级,大版本之间的升级

  2. 两者的区别

  • in-place upgrade:
适合小版本的升级。
即 关闭当前的MySQL,替换当前的二进制文件或包,在现有的数据目录上重启MySQL,并运行
mysql_upgrade.
特点:不改变数据文件,升级速度快;但,不可以跨操作系统,不可以跨大版本(5.5—>5.7).
  • logical upgrade:
适合不同操作系统的MySQL升级,大版本之间的升级。
即:使用mysqldump 或 mydumper 导入导出数据,实现版本的升级。
特点:可以跨操作系统,跨大版本;但,升级速度慢,容易出现乱码等问题
  1. 升级步骤
    1)备份
    升级前要备份与数据相关的所有文件,包括datadir,ib_logfile,ibdata1和binlog等
    要理解 所谓的备份就是个拷贝的过程
    2)升级
    3)使用mysql_upgrade 检查不兼容的表。
    4) 测试升级后是否能正常访问,查看MySQL版本,用户权限,访问用户数据,查看是否正常。
    查看新版本的sql_mode值和旧版本中的sql_mode值是否相同。

  2. 升级注意事项
    1) 升级前的备份重于一切
    2)提前了解新版本变更的信息,切实弄清楚哪些不再兼容,不再支持哪些功能,增加了哪些功能)
    3)关注sql_mode的变化
    比如MySQL8已经取消了NO_AUTO_CREATE_USER这个关键词,所以从5.7升级的时候,需要取消掉NO_AUTO_CREATE_USER,否则升级完后设置sql_mode不能启动
    备注: 这个值可以完成不同程度的数据校验,有效的保障数据的准确性。
    4) 升级后要确保业务SQL能跑通,程序层正常
    5)注意字符集乱码的问题。
    6) 升级过程中多次启动建议加上 --skip-grant-tables和--skip-networking 参数,来保证没有任何的应用连接,让升级过程更加安全。

7)若主库有低于5.7的版本的,则从库不建议升级到5.7版本,否则会出现莫名其妙的sql报错。
8)若是主从模式,建议先升级从库,升级后从库会记录同步信息,所以不需要重新做主从同步,启动即可。

赞(0)
未经允许不得转载:极客进化岛 » 【MySQL】MySQL的常用升级方法