17.1.4.1 Replication and Binary Logging Option and Variable Reference
17.1.4.2 Replication Master Options and Variables
17.1.4.3 Replication Slave Options and Variables
17.1.4.4 Binary Log Options and Variables
17.1.4.5 Global Transaction ID Options and Variables
下各节包含有关在复制中和用于控制二进制日志的mysqld选项和服务器变量的信息 。复制主体和复制从属上使用的选项和变量以及与二进制日志记录有关的选项和变量分别介绍。还包括一组快速参考表,这些表提供了有关这些选项和变量的基本信息。
特别重要的是 server_id系统变量。
属性 值
命令行格式 --server-id=#
系统变量 server_id
范围 全局
动态 是
类型 整数
默认值 0
最低值 0
最大值 4294967295
此变量指定服务器ID。
在复制主服务器和每个复制从属服务器上,您 必须指定 server_id在1到2 32 − 1 范围内建立唯一的复制ID 。“ Unique ”表示每个ID必须与其他任何复制使用的其他ID不同。主或从。有关更多信息,请参见 第17.1.4.2节“复制主选项和变量”和 第17.1.4.3节“复制从属选项和变量”。
如果未指定server_id,则默认服务器ID为0。如果服务器ID设置为0,则会进行二进制日志记录,但是服务器ID为0的主服务器将拒绝来自从服务器的连接,而服务器ID为的服务器将拒绝从服务器的连接。 0拒绝连接到主机。请注意,尽管您可以将服务器ID动态更改为非零值,但这样做不会使复制立即开始。您必须更改服务器ID,然后重新启动服务器以初始化复制从属服务器。
在MySQL 5.6中,无论服务器ID显式设置为0还是允许使用默认值,服务器都将 server_id系统变量设置为1;这是一个已知问题,已在MySQL 5.7中修复。
有关更多信息,请参见 第17.1.1.2节“设置复制从站配置”。
server_uuid
从MySQL 5.6开始,服务器除了生成server_id用户提供的值外,还会生成真实的UUID 。这可作为全局只读 server_uuid系统变量使用。
属性 值
系统变量 server_uuid
范围 全局
动态 没有
类型 串
启动时,MySQL服务器会自动获取UUID,如下所示:
尝试读取并使用写在文件data_dir/auto.cnf (data_dir服务器的数据目录)中的UUID 。
如果 data_dir/auto.cnf 未找到,请生成一个新的UUID并将其保存到该文件,并在必要时创建该文件。
该auto.cnf文件的格式类似于用于my.cnf或my.ini 文件的格式。在MySQL 5.6中,auto.cnf只有一个[auto]包含单个 server_uuid设置和值的部分。该文件的内容类似于此处显示的内容:
[auto]
server_uuid=8a94f357-aab4-11df-86ab-c80aa9429562
重要
该auto.cnf文件是自动生成的;不要尝试写入或修改此文件。
同样从MySQL 5.6开始,使用MySQL复制时,主服务器和从服务器会知道彼此的UUID。在的输出中可以看到从站的UUID的值 SHOW SLAVE HOSTS。一旦 START SLAVE执行了(但不是在执行之前),主机的UUID的值就可以在从机上的输出中获得SHOW SLAVE STATUS。
注意
发出STOP SLAVE或 RESET SLAVE语句也 不会重置主人的UUID在从属的使用。
server_uuidGTID中还使用 服务器的服务来进行源自该服务器的事务。有关更多信息,请参见第17.1.3节“使用全局事务标识符进行复制”。
启动时,如果–replicate-same-server-id未设置该选项,则从属I / O线程将生成错误并中止,如果其主控的UUID等于其自身的UUID 。此外,如果满足以下任一条件,则从属I / O线程会生成警告:
不server_uuid存在具有期望的主控 。
server_uuid 尽管CHANGE MASTER TO从未执行过任何语句,但 主服务器已更改。
注意
如本节前面所述,server_uuid 在MySQL 5.6中添加系统变量不会改变在server_id准备和运行MySQL复制过程中为每个MySQL服务器设置唯一值的要求 。




