MySQL支持从一个发行版本到下一个更高发行版本的复制。例如,您可以从运行MySQL 5.6的主服务器复制到运行MySQL 5.7的从服务器,从运行MySQL 5.7的主服务器复制到运行MySQL 8.0的从服务器,依此类推。但是,如果主服务器使用语句或依赖于从服务器上使用的MySQL版本不再支持的行为,则从较旧的主服务器复制到较新的从服务器时,可能会遇到困难。例如,MySQL 8.0不再支持超过64个字符的外键名称。
在涉及多个主服务器的复制设置中,不考虑使用两个以上的MySQL Server版本,而不管主MySQL服务器或从MySQL服务器的数量如何。此限制不仅适用于发行系列,而且也适用于同一发行系列中的版本号。例如,如果您使用链式或循环复制设置,则尽管可以同时使用这两个版本中的任何一个,但不能同时使用MySQL 8.0.1,MySQL 8.0.2和MySQL 8.0.4。
重要
强烈建议使用给定的MySQL版本系列中提供的最新版本,因为复制(和其他)功能正在不断得到改善。还建议将使用MySQL早期发行版的主服务器和从属服务器升级为GA(生产)发行版,以使其适用于GA(生产)发行版。
从MySQL 8.0.14开始,对于最初提交事务original_server_version的服务器()和复制拓扑中当前服务器的直接主服务器的每个事务,服务器版本都记录在二进制日志中immediate_server_version。
从较新的主服务器到较旧的从服务器的复制是可能的,但是通常不支持。这是由于许多因素造成的:
二进制日志格式更改。 二进制日志格式可以在主要版本之间进行更改。尽管我们尝试保持向后兼容性,但这并非总是可能的。主服务器可能还启用了旧的从服务器无法理解的可选功能,例如二进制日志事务压缩,在MySQL 8.0.20之前的版本中,从服务器无法读取生成的压缩事务有效负载。
SQL不兼容。 如果要复制的语句使用的是主服务器上可用的SQL功能,但不能使用从属服务器上的SQL功能,则不能使用基于语句的复制将新的主服务器复制到较旧的从服务器。
但是,如果主服务器和从服务器都支持基于行的复制,并且没有要复制的数据定义语句依赖于主服务器上而不是从服务器上的SQL功能,则可以使用基于行的复制来复制即使从服务器上不支持DDL在主服务器上运行,数据修改语句也会产生影响。