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

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

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

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

答案1

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

尝试启动复制时,发生以下错误:

mysql> SHOW SLAVE STATUS\G
**************************** 1. row **************************** ... 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 row in set (0.00 sec)

在错误日志中也可以看到这个错误:

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

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

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

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

mysql> SHOW GLOBAL VARIABLES LIKE 'server_uuid'; +-----------+--------------------------+ | Variable_name | Value | +-----------+--------------------------+ | server_uuid | 7cb3e340-39d6-11e3-bc02-080027fa0f20 | +---------------+---------------------------------------+ 1 row in set (0.00 sec) 要查看主服务器的 UUID,可以使用 SHOW SLAVE STATUS 的输出:

mysql> SHOW SLAVE STATUS\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 文件不会从主服务器复制过来。

相关内容