综合 升级到 MySQL 9.7 之前,先把 my.cnf 里这两个复制变量清掉

2026-11-08 21:05:22

升级到 MySQL 9.7 之前,先把 my.cnf 里这两个复制变量清掉

从 8.0 或 8.4 直接升级到 MySQL 9.7 时,最容易让 mysqld 无法启动的原因往往不是数据目录,而是 my.cnf 里还留着已经消失的变量。9.7 删掉的两个系统变量都与复制有关:replica_parallel_type 和 group_replication_allow_local_lower_version_join。

参考文档:

被移除的变量

9.7 的 “Features Removed” 一节明确列出服务器系统变量和状态变量的移除清单,上面两个变量在其中:

  • group_replication_allow_local_lower_version_join
  • replica_parallel_type

这两个变量在 9.7 中已不存在。需要注意,replica_parallel_type 在 8.0 里的取值是 LOGICAL_CLOCK / DATABASE;8.0.27 起 DATABASE 取值本身已被弃用。9.7 则直接移除了整个变量。

被弃用的变量

9.7.0 弃用了 enable_cascade_triggers。这个变量是在 9.7.0 新增的同时被弃用的,它控制外键级联时子表触发器是否执行,默认值为 OFF;当 innodb_native_foreign_keys=ON 时该功能无效,因为它只支持 SQL 层外键。

9.7.2 release notes 又追加了两个组复制相关的弃用项(WL #17300,计划在后续版本移除):

  • group_replication_communication_stack
  • group_replication_ip_allowlist

弃用并不是移除。这两个变量在 9.7 中仍可使用,但升级到后续版本后可能失效。如果现有配置或自动化脚本依赖它们,就需要提前留意。

残留配置的后果与升级前检查

MySQL 启动时遇到未知系统变量,通常会报 unknown variable 然后退出。把已移除的变量留在 my.cnf 里,mysqld 就无法启动,日志里只会留下一条变量不存在的报错,排查时容易误判成权限或数据目录问题。

升级前可以用 MySQL Shell 的 util.checkForServerUpgrade() 做一次检查,它会扫描配置与实例状态,指出不兼容项。另外,建议单独扫描一遍配置文件,排查不在 my.cnf 主文件时容易漏掉的 !include 和 !includedir 引入片段:用 grep -rn 查找 replica_parallel_type、group_replication_allow_local_lower_version_join、group_replication_communication_stack、group_replication_ip_allowlist 四个名字,逐个确认。

并行复制的替代配置

replica_parallel_type 被移除后,并行复制不能再靠它切换模式。方向上是改用 replica_parallel_workers 与 replica_preserve_commit_order 的组合来控制并行度与提交顺序。具体取值和组合行为需自行核对对应版本文档;不同小版本间的默认值与语义有差异,不要直接照搬 8.0 的经验值。

9.7.0 / 9.7.2 其他需要注意的变化

  • 版本号从 9.7.4 起改为四段 MAJOR.MINOR.PATCH.UPDATE;新增 VERSION_WITH_UPDATE()、version_with_update 变量与 mysqld --version-with-update。VERSION()、version、mysqld --version 仍返回三段。解析版本字符串的监控和部署脚本要跟着调整。
  • GIPK 相关:UNIQUE NOT NULL 视为 Primary Key-equivalent。
  • Hypergraph Optimizer 进入社区版,通过 optimizer_switch='hypergraph_optimizer=on' 开启。
  • SCRAM-SHA-1(LDAP SASL)自 9.5.0 起弃用,默认改为 SCRAM-SHA-256。
  • 9.7.2 中 thread_pool_max_unused_threads 默认值从 2 改为 32。

升级路径上,被移除的变量必须在启动新版本前从配置里删除,被弃用的变量则要安排替换计划。这两步做完,再考虑并行复制的参数调整。

复制全文 生成海报 MySQL 复制 升级踩坑

推荐文章

程序员茄子在线接单