MySQL 支持从一个版本系列复制到下一个更高版本系列。例如,您可以从运行 MySQL 5.6 的源复制到运行 MySQL 5.7 的副本,从运行 MySQL 5.7 的源复制到运行 MySQL 8.0 的副本,等等。但是,如果源使用的语句或依赖于副本上使用的 MySQL 版本不再支持的行为,则在从较旧的源复制到较新的副本时可能会遇到困难。例如,MySQL 8.0 不再支持超过 64 个字符的外键名称。
在涉及多个源的复制设置中,不支持使用两个以上的 MySQL 服务器版本,无论源或副本 MySQL 服务器的数量如何。此限制不仅适用于发布系列,还适用于同一发布系列中的版本号。例如,如果您使用链式或循环复制设置,则不能同时使用 MySQL 5.7.22、MySQL 5.7.23 和 MySQL 5.7.24,尽管您可以同时使用这些版本中的任何两个。
强烈建议使用给定 MySQL 版本系列中可用的最新版本,因为复制(和其他)功能正在不断改进。当 GA(生产)版本可用于该版本系列时,还建议将使用早期版本的 MySQL 的源和副本升级到 GA(生产)版本。
可以从较新的源复制到较旧的副本,但通常不支持。这是由于多种因素造成的:
二进制日志格式更改。 二进制日志格式可以在主要版本之间更改。虽然我们试图保持向后兼容性,但这并不总是可能的。
这对升级复制服务器也有重要意义;有关详细信息,请参阅 第 16.4.3 节,“升级复制拓扑”。
有关基于行的复制的更多信息,请参阅 第 16.2.1 节,“复制格式”。
SQL 不兼容。 如果要复制的语句使用源上可用但副本上不可用的 SQL 功能,则无法使用基于语句的复制从较新的源复制到较旧的副本。
但是,如果源和副本都支持基于行的复制,并且没有要复制的数据定义语句依赖于在源上找到但在副本上没有的 SQL 功能,则可以使用基于行的复制来复制即使副本不支持在源上运行的 DDL,数据修改语句的影响也是如此。
有关潜在复制问题的更多信息,请参阅 第 16.4.1 节,“复制功能和问题”。