以下部分包含的信息mysqld选择和服务器变量用于复制和控制二进制日志。选择和变量使用来源和副本分别覆盖,选择和变量相关的二进制日志和全球事务标识符(GTIDs)。一组快速参考表提供这些选项和变量的基本信息也包括在内。
特别重要的是server_id
系统变量。
命令行格式 | ——服务器id = # |
---|---|
系统变量 | server_id |
范围 | 全球 |
动态 | 是的 |
类型 | 整数 |
默认值 | 0 |
最小值 | 0 |
最大值 | 4294967295 |
这个变量指定服务器ID。在MySQL 5.7中,server_id
必须指定是否启用了二进制日志,否则服务器是不允许的。
server_id
默认设置为0。复制源服务器和每个副本,你必须指定server_id
建立一个独特的范围从1到2复制ID32−1。”独特的”,意味着每个ID必须不同于其他ID使用任何其他来源或复制的复制拓扑。有关更多信息,请参见部分16.1.6.2”,复制源选择和变量”,部分16.1.6.3,“副本服务器选项和变量”。
如果服务器ID设置为0,二进制日志,但源服务器ID(0)拒绝任何来自副本的连接,和一个副本的服务器ID 0拒绝连接到源。注意,尽管你可以改变服务器ID动态为一个非零的值,这样做不会使复制立即开始。您必须更改服务器ID,然后重新启动服务器以初始化复制。
有关更多信息,请参见部分16.1.2.5.1”,设置复制配置”。
在MySQL 5.7中,服务器生成一个真正的UUID除了server_id
用户提供的值。这是随着全球可用,只读的server_uuid
系统变量。
的存在server_uuid
系统变量在MySQL 5.7不改变设置一个独特的要求server_id
值为每个MySQL服务器的准备和运行MySQL复制,如本节所述。
系统变量 | server_uuid |
---|---|
范围 | 全球 |
动态 | 没有 |
类型 | 字符串 |
开始时,MySQL服务器自动获得一个UUID如下:
的auto.cnf
文件格式用于类似my.cnf
或my.ini
文件。在MySQL 5.7中,auto.cnf
只有一个(汽车)
部分包含一个server_uuid
设置和价值;文件的内容如下所示:
[汽车]server_uuid = 8 a94f357 - aab4 - 11 - df - 86 - ab - c80aa9429562
的auto.cnf
文件是自动生成的;不要试图编写或修改这个文件。
当使用MySQL复制、来源和副本知道彼此的uuid。副本的UUID的输出中可以看到显示奴隶主人
。一次开始的奴隶
已经执行,源的UUID的输出可以在副本吗显示奴隶状态
。
服务器的server_uuid
也用于GTIDs交易原始服务器。有关更多信息,请参见部分16.1.3,“与全局事务标识符复制”。
开始时,复制I / O的线程生成一个错误,中止如果源头的UUID =自己的,除非——replicate-same-server-id
选项设置。此外,复制I / O的线程生成一条警告如果以下是正确的:
没有预期的来源
server_uuid
的存在。源的
server_uuid
已经改变了,虽然没有改变主
语句被执行。