暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

17.4.2 Replication Compatibility Between MySQL Versions

原创 由迪 2020-04-20
552

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

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

重要
强烈建议使用给定的MySQL版本系列中提供的最新版本,因为复制(和其他)功能正在不断得到改善。还建议将使用MySQL早期发行版的主服务器和从属服务器升级为GA(生产)发行版,以使其适用于GA(生产)发行版。

从较新的主服务器到较旧的从服务器的复制是可能的,但是通常不支持。这是由于许多因素造成的:

二进制日志格式更改。 二进制日志格式可以在主要版本之间进行更改。尽管我们尝试保持向后兼容性,但这并非总是可能的。例如,在MySQL 5.0中实现的二进制日志格式与以前的版本相比发生了很大的变化,特别是在字符集LOAD DATA,和时区的处理方面。这意味着通常不支持从MySQL 5.0(或更高版本)的主服务器到MySQL 4.1(或更低版本)的从服务器的复制。

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

使用基于行的复制。 基于行的复制是在MySQL 5.1.5中实现的,因此您不能使用基于行的复制从任何MySQL 5.6或更高版本的主服务器复制到比MySQL 5.1.5早的从服务器。

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

SQL不兼容。 如果要复制的语句使用的是主服务器上可用的SQL功能,而不能使用从属服务器上的SQL功能,则不能使用基于语句的复制从较新的主服务器复制到较旧的从服务器。

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

MySQL 5.6中的重要变量。 MySQL 5.6中已添加功能,在复制到早期MySQL版本时需要禁用这些功能。为了避免不兼容,请在MySQL 5.6 master上设置以下变量:

binlog_checksum=NONE

binlog_row_image=FULL

binlog_rows_query_log_events=OFF

log_bin_use_v1_row_events=1 (仅NDB群集)

gtid_mode=OFF

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

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论