Documentation Home

17.1.2.1 设置复制源配置

要将源配置为使用基于二进制日志文件位置的复制,您必须确保启用二进制日志记录,并建立唯一的服务器 ID。

复制拓扑中的每个服务器都必须配置一个唯一的服务器 ID,您可以使用 server_id系统变量指定该 ID。此服务器 ID 用于标识复制拓扑中的各个服务器,并且必须是介于 1 和 (2 32 )−1 之间的正整数。MySQL 8.0的默认 server_id值为 1。您可以 server_id通过发出如下语句动态更改该值:

SET GLOBAL server_id = 2;

如何组织和选择服务器 ID 是您的选择,只要每个服务器 ID 都不同于复制拓扑中任何其他服务器使用的每个其他服务器 ID。请注意,如果先前为服务器 ID 设置了值 0(这是早期版本中的默认值),则必须重新启动服务器以使用新的非零服务器 ID 初始化源。否则,更改服务器 ID 时不需要重新启动服务器,除非您进行其他需要重新启动的配置更改。

源上需要二进制日志记录,因为二进制日志是将更改从源复制到其副本的基础。默认情况下启用二进制日志记录( log_bin系统变量设置为 ON)。该--log-bin选项告诉服务器二进制日志文件使用什么基本名称。建议您指定此选项为二进制日志文件提供一个非默认的基本名称,这样如果主机名发生变化,您可以轻松地继续使用相同的二进制日志文件名(请参阅第 B.3.7 节,“已知MySQL 中的问题”)。如果之前使用该选项在源上禁用了二进制日志记录 --skip-log-bin ,则必须在不使用该选项的情况下重新启动服务器才能启用它。

笔记

以下选项也会对源产生影响:

  • InnoDB为了在使用事务 的复制设置中获得最大可能的持久性和一致性 ,您应该在源 文件 中使用innodb_flush_log_at_trx_commit=1and 。sync_binlog=1my.cnf

  • 确保 skip_networking未在源上启用系统变量。如果已禁用网络,则副本无法与源通信并且复制失败。