16.4.2 MySQL 版本之间的复制兼容性

MySQL 支持从一个发行版本到下一个更高发行版本的复制。例如,您可以从运行 MySQL 5.6 的源复制到运行 MySQL 5.7 的副本,从运行 MySQL 5.7 的源复制到运行 MySQL 8.0 的副本,依此类推。但是,如果源使用语句或依赖副本上使用的 MySQL 版本不再支持的行为,则从较旧的源复制到较新的副本时,您可能会遇到困难。例如,MySQL 8.0 不再支持超过 64 个字符的外键名称。

在涉及多个源的复制设置中,不考虑使用两个以上的 MySQL Server 版本,无论源或副本 MySQL 服务器的数量如何。此限制不仅适用于发行系列,而且也适用于同一发行系列中的版本号。例如,如果使用链式或循环复制设置,则虽然可以同时使用这两个版本中的任何一个,但不能同时使用 MySQL 5.7.22,MySQL 5.7.23 和 MySQL 5.7.24.

Important

强烈建议使用给定 MySQL 版本系列中可用的最新版本,因为复制(和其他)功能正在不断得到改进。还建议将使用 MySQL 早期发行版的源和副本升级为 GA(生产)发行版,以使其适用于 GA(生产)发行版。

可以从较新的源复制到较旧的副本,但通常不支持。这是由于许多因素造成的:

  • 二进制日志格式更改. 二进制日志格式可以在主要版本之间更改。尽管我们尝试保持向后兼容性,但这并不总是可能的。

这对于升级复制服务器也具有重要意义。有关更多信息,请参见第 16.4.3 节“升级复制设置”

  • 有关基于行的复制的更多信息,请参见第 16.2.1 节“复制格式”

  • SQL 不兼容. 如果要复制的语句使用源上可用的 SQL 功能,而不使用副本上的可用 SQL 功能,则不能使用基于语句的复制从较新的源复制到较旧的副本。

但是,如果源和副本都支持基于行的复制,并且没有要复制的数据定义语句依赖于源(而不是副本)上的 SQL 功能,则可以使用基于行的复制来复制即使副本上不支持在源上运行的 DDL,数据修改语句也会产生影响。

有关潜在复制问题的更多信息,请参见第 16.4.1 节“复制功能和问题”