### 17.1.1 基于二进制日志文件位置的复制配置概述

本节介绍基于二进制日志文件位置方法的 MySQL 服务器之间的复制，其中 MySQL 实例作为源（数据库更改发生的地方）将更新和更改作为“事件”写入二进制日志。二进制日志中的信息根据正在记录的数据库更改以不同的日志格式存储。副本被配置为从源读取二进制日志并在副本的本地数据库上执行二进制日志中的事件。

每个副本都会收到二进制日志全部内容的副本。副本负责决定应该执行二进制日志中的哪些语句。除非您另外指定，否则源二进制日志中的所有事件都在副本上执行。如果需要，您可以将副本配置为仅处理适用于特定数据库或表的事件。

重要的

您不能将源配置为仅记录某些事件。

每个副本都会记录二进制日志坐标：它从源读取和处理的文件中的文件名和位置。这意味着多个副本可以连接到源并执行同一二进制日志的不同部分。因为副本控制这个过程，所以各个副本可以与服务器连接和断开连接，而不会影响源的操作。此外，由于每个副本都记录了二进制日志中的当前位置，因此副本可能会断开连接，重新连接然后恢复处理。

源和每个副本都必须配置一个唯一的 ID（使用[`server_id`](replication-options.html#sysvar_server_id)系统变量）。此外，必须为每个副本配置有关源的主机名、日志文件名和该文件中的位置的信息。这些细节可以在 MySQL 会话中使用[`将复制源更改为`](change-replication-source-to.html)语句（来自 MySQL 8.0.23）或[`将主更改为`](change-master-to.html)副本上的语句（在 MySQL 8.0.23 之前）。详细信息存储在副本的连接元数据存储库中（请参阅[第 17.2.4 节，“中继日志和复制元数据存储库”](replica-logs.html)）。
