要将源配置为使用基于二进制日志文件位置的复制,必须确保启用了二进制日志记录,并建立唯一的服务器ID。
复制拓扑中的每个服务器都必须配置唯一的服务器ID,您可以使用server_id
系统变量。此服务器ID用于标识复制拓扑中的单个服务器,必须是1到(2)之间的正整数32)−1。默认的server_id
MySQL 8.0的值为1。你可以更改server_id
通过发出这样的语句动态地赋值:
SET GLOBAL server_id = 2;
您可以选择如何组织和选择服务器ID,只要每个服务器ID与复制拓扑中任何其他服务器使用的其他服务器ID不同即可。注意,如果之前为服务器ID设置了0值(这是早期版本中的默认值),则必须重新启动服务器,以使用新的非零服务器ID初始化源代码。否则,更改服务器ID时不需要重新启动服务器,除非您进行了其他需要重新启动服务器的配置更改。
源上需要二进制日志记录,因为二进制日志是将更改从源复制到其副本的基础。默认情况下启用二进制日志记录log_bin
系统变量设置为ON)。的——log-bin
选项告诉服务器二进制日志文件使用的基名。建议您指定此选项,为二进制日志文件提供一个非默认的基本名称,以便在主机名更改时,可以轻松地继续使用相同的二进制日志文件名(请参阅MySQL中的已知问题).属性在源上禁用了二进制日志记录——skip-log-bin
选项,必须在没有此选项的情况下重新启动服务器才能启用它。
以下选项也会对源文件产生影响:
为最大可能的持久性和一致性在复制设置使用
InnoDB
对于事务,您应该使用innodb_flush_log_at_trx_commit = 1
而且sync_binlog = 1
在源代码中my.cnf
文件。确保
skip_networking
源上没有启用系统变量。如果已禁用网络,副本将无法与源端通信,复制将失败。