10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册 本手册节选

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

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

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

特别重要的是server_id系统变量。

命令行格式 ——服务器id = #
系统变量 server_id
范围 全球
动态 是的
SET_VAR提示应用 没有
类型 整数
默认值 1
最小值 0
最大值 4294967295

该变量指定服务器ID。server_id默认为1。服务器可以使用这个默认ID启动,但是当启用二进制日志记录时,如果您没有设置,则会发出一条信息消息server_id显式地指定服务器ID。

对于复制拓扑中使用的服务器,必须为每个复制服务器指定唯一的服务器ID,范围从1到232−1。独特的意味着每个ID必须与复制拓扑中任何其他源或副本使用的其他ID不同。有关其他信息,请参见17.1.6.2节,“复制源选项和变量”,章节17.1.6.3,“副本服务器选项和变量”

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

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

server_uuid

中设置的默认或用户提供的服务器ID之外,MySQL服务器生成一个真实的UUIDserver_id系统变量。这可以作为全局只读变量使用server_uuid

请注意

存在server_uuid系统变量不改变设置唯一的要求server_id值,作为准备和运行MySQL复制的一部分,如本节前面所述。

系统变量 server_uuid
范围 全球
动态 没有
SET_VAR提示应用 没有
类型 字符串

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

  1. 尝试读取和使用写入文件中的UUIDdata_dir/ auto.cnf(data_dir服务器的数据目录)。

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

auto.cnfFile的格式类似于my.cnfmy.ini文件。auto.cnf只有一个(汽车)包含单个server_uuid设置和值;该文件的内容如下所示:

[汽车]server_uuid = 8 a94f357 - aab4 - 11 - df - 86 - ab - c80aa9429562
重要的

auto.cnf文件自动生成;不要尝试写入或修改此文件。

当使用MySQL复制时,源和副本知道彼此的uuid。的输出中可以看到副本的UUID值显示副本|显示从主机.一次启动副本|从站的输出中,源UUID的值在副本上可用显示副本|从站状态

请注意

发出一个停止复制|从站重置副本|从站声明并重置源的UUID,就像在副本上使用的那样。

服务器的server_uuid在gtid中也用于起源于该服务器的事务。有关更多信息,请参见第17.1.3节,“使用全局事务标识符的复制”

在启动时,如果复制I/O线程的源UUID等于它自己的UUID,则会生成一个错误并中止——replicate-same-server-id选项已设置。此外,如果下列情况之一为真,复制I/O线程将生成一个警告: