错误 1236 与此从站具有相同 server_uuid/server_id 的从站已连接到主站

jef*_*cob 3 mysql-replication

配置单主多从服务器时出现此错误。

Last_IO_Error : 从二进制日志读取数据时,主服务器出现致命错误 1236 : ' 与该从服务器具有相同 server_uuid/server_id 的从服务器已连接到主服务器;第一个事件“mysql-bin.xxxx”在 xx 处从 /var/lib/mysql/mysql-bin.xxx' 处读取,最后一个字节从“/var/lib/mysql/mysql-bin.xxx”处读取xxx。' 一名奴隶的截图

jef*_*cob 5

适用于: MySQL 服务器 - 版本 5.6 及更高版本 本文档中的信息适用于任何平台。

尝试启动复制时,出现以下错误:

mysql> 显示从属状态\G
************************* 1. 行 ************* ************** ... Slave_IO_Running:否 Slave_SQL_Running:是 ... Last_IO_Errno:1593 Last_IO_Error:致命错误:从属 I/O 线程停止,因为主从具有相同的 MySQL 服务器 UUID ; 这些 UUID 必须不同才能进行复制。Last_SQL_Errno: 0 Last_SQL_Error: ... Master_UUID: 7cb3e340-39d6-11e3-bc02-080027fa0f20 ... 集合中的 1 行(0.00 秒)

错误日志中也可以看到错误:

2013-11-12 09:54:21 10149 [错误]从属 I/O:致命错误:从属 I/O 线程停止,因为主从具有相同的 MySQL 服务器 UUID;这些 UUID 必须不同才能进行复制。Error_code: 1593 2013-11-12 09:54:21 10149 [Note] Slave I/O 线程退出,读取日志 'binlog.000005',位置 231

更改 此问题通常会在从主服务器克隆从服务器后发生,特别是在使用文件系统快照或已使用文件系统命令复制数据目录时。

原因 主服务器和从服务器的服务器 UUID 相同。UUID 用于标识服务器,因此它们必须相同。例如,这是使用 GTID 进行复制所必需的。

服务器 UUID 存储在数据目录中的 auto.cnf 文件中。您可以使用以下命令查看服务器 UUID 的值:

mysql> 显示全局变量,如“server_uuid”;+------------------------++--------------------------------- -----+ | 变量名 | 价值| +------------------------++--------------------------------- -----+ | 服务器 UUID | 7cb3e340-39d6-11e3-bc02-080027fa0f20 | +------------------------++--------------------------------- -----+ 1 row in set (0.00 sec) 要查看主设备的 UUID,您可以使用 SHOW SLAVE STATUS 的输出:

mysql> 显示从属状态\G
************************* 1. 行 ************* ************** ... Master_UUID:7cb3e340-39d6-11e3-bc02-080027fa0f20 ... 1 行(0.00 秒)

解决方案 如果 auto.cnf 不存在,MySQL 将自动创建一个具有新 UUID 的新文件。所以要解决这个问题:

  1. 停止从属服务器上的 MySQL 进程。
  2. 从数据目录中删除 auto.cnf 文件。
  3. 在从站上再次启动 MySQL。

您还应该修改创建从站的过程,以确保 auto.cnf 文件不会从主站复制。