文档首页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  ...  /  复制和二进制日志选项和变量

19.1.6 复制和二进制日志选项和变量

以下部分包含有关 mysqld 选项和服务器变量的信息,这些选项和变量用于复制和控制二进制日志。源和副本上使用的选项和变量分别介绍,二进制日志记录和全局事务标识符 (GTID) 相关的选项和变量也分别介绍。还包括一些快速参考表,提供有关这些选项和变量的基本信息。

server_id 系统变量尤为重要。

命令行格式 --server-id=#
系统变量 server_id
范围 全局
动态
SET_VAR 提示适用
类型 整数
默认值 1
最小值 0
最大值 4294967295

此变量指定服务器 ID。默认情况下,server_id 设置为 1。服务器可以使用此默认 ID 启动,但如果启用了二进制日志记录,则如果未显式设置 server_id 来指定服务器 ID,则会发出信息消息。

对于用于复制拓扑的服务器,您必须为每个复制服务器指定一个唯一的服务器 ID,范围为 1 到 232 − 1。唯一 表示每个 ID 必须不同于复制拓扑中任何其他源或副本使用的任何其他 ID。有关更多信息,请参见 第 19.1.6.2 节,“复制源选项和变量”第 19.1.6.3 节,“副本服务器选项和变量”

如果服务器 ID 设置为 0,则会进行二进制日志记录,但服务器 ID 为 0 的源拒绝任何来自副本的连接,而服务器 ID 为 0 的副本拒绝连接到源。请注意,尽管您可以动态地将服务器 ID 更改为非零值,但这样做并不能立即启用复制。您必须更改服务器 ID,然后重新启动服务器才能初始化副本。

有关更多信息,请参见 第 19.1.2.2 节,“设置副本配置”

server_uuid

MySQL 服务器除了在 server_id 系统变量中设置的默认或用户提供的服务器 ID 之外,还会生成一个真正的 UUID。这在全局只读变量 server_uuid 中可用。

注意

即使存在 server_uuid 系统变量,也并不改变在准备和运行 MySQL 复制时,为每个 MySQL 服务器设置唯一 server_id 值的要求,如本节前面所述。

系统变量 server_uuid
范围 全局
动态
SET_VAR 提示适用
类型 字符串

启动时,MySQL 服务器会自动获取 UUID,方法如下:

  1. 尝试读取并使用保存在文件 data_dir/auto.cnf 中的 UUID(其中 data_dir 是服务器的数据目录)。

  2. 如果未找到 data_dir/auto.cnf,则生成一个新的 UUID 并将其保存到该文件,如果文件不存在则创建该文件。

auto.cnf 文件的格式类似于 my.cnfmy.ini 文件的格式。 auto.cnf 只有一个 [auto] 节,其中包含一个 server_uuid 设置和值;该文件的内容类似于以下内容

[auto]
server_uuid=8a94f357-aab4-11df-86ab-c80aa9429562
重要

auto.cnf 文件是自动生成的;请勿尝试写入或修改该文件。

使用 MySQL 复制时,源服务器和副本服务器会知道彼此的 UUID。副本服务器的 UUID 值可以在 SHOW REPLICAS 的输出中看到。执行 START REPLICA 后,源服务器的 UUID 值在副本服务器上 SHOW REPLICA STATUS 的输出中可用。

注意

发出 STOP REPLICARESET REPLICA 语句 不会 重置副本服务器上使用的源服务器的 UUID。

服务器的 server_uuid 也用于该服务器上发起的交易的 GTID。有关更多信息,请参见 第 19.1.3 节,“使用全局事务标识符进行复制”

启动时,如果复制 I/O(接收器)线程的源服务器的 UUID 等于它自己的 UUID,则会生成错误并中止,除非设置了 --replicate-same-server-id 选项。此外,如果以下任一情况为真,复制接收器线程会生成警告: