MySQL 升级版本有什么坑吗?

2021-10-13 19:29:46 +08:00
 myd

目前使用的版本是 MySQL 5.5,32 位的。打算升级到 64 位的 MySQL 8 (或者 MySQL 5.7 )。

升级理由

步骤

  1. 安装一个 MySQL 8 实例。
  2. 导入数据到 MySQL 8 并配置为从库。
  3. 主从同步一致后,停掉应用,将从库提为主库。
  4. 修改应用的数据库配置为主库,启动应用。

想问问:有什么坑?需要注意的地方?

1907 次点击
所在节点    数据库
12 条回复
sadfQED2
2021-10-13 19:31:44 +08:00
PHP 项目的话需要注意新版本的密码检验不支持
cszchen
2021-10-13 19:40:27 +08:00
group 查询不一样了,5.7 以前不是标准的 sql,不过也可以改成 5.7 以前的规则
jasonkayzk
2021-10-14 00:49:34 +08:00
5.x dump 的 sql 数据在 8.x 可能执行失败(亲身实践
chengyiqun
2021-10-14 09:21:07 +08:00
用 5.7 就行了, 别升级 8.
Rache1
2021-10-14 09:27:39 +08:00
按照 MySQL 官方的说法,你不能跳版本升级。

即你只能 5.5 -> 5.6.x -> 5.7.x -> 8.0 这样升级上去。

当然,如果你直接从 5.5 导出数据,然后导入到 8.0 去,这是没啥问题。

具体要看文档

https://dev.mysql.com/doc/refman/8.0/en/upgrade-paths.html
myd
2021-10-14 09:35:58 +08:00
@jasonkayzk 是什么原因呢?
myd
2021-10-14 09:36:25 +08:00
@Rache1 这个步骤看起来有点麻烦,实际上应该没有人这样操作吧
BiChengfei
2021-10-14 10:17:46 +08:00
id 默认自增策略有区别了,innodb_autoinc_lock_mode 默认值不同

5.5 中,(默认不清楚,查看:show variables where Variable_name = 'innodb_autoinc_lock_mode';)
8.0 中,默认 innodb_autoinc_lock_mode = 2

https://github.com/bichengfei/MySQL/blob/master/InnoDB/6/6.1/6.1.InnoDB%E4%B8%ADauto_increment%E5%A4%84%E7%90%86%EF%BC%88%E5%AE%98%E7%BD%91%E7%89%88%EF%BC%89.md
BQsummer
2021-10-14 15:33:50 +08:00
小版本升级坑会少很多;没有很强烈的理由要升到 8
GoRoad
2021-10-14 15:56:42 +08:00
可以看看 mariadb
jasonkayzk
2021-10-14 21:39:39 +08:00
@myd #6 貌似是 5.x 导出的 SQL,在 8.x 中语法不兼容;
marktask
2021-10-15 10:37:25 +08:00
没什么特殊需求不要大版本升级,没什么问题不要小版本更新,能稳定运行就不要升级了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/807622

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX