Error number: MY-010661; Symbol: ER_NDB_BINLOG_USING_SERVER_ID_0_SLAVES_WILL_NOT; SQLSTATE: HY000
Message: NDB: server id set to zero – changes logged to bin log with server id zero will be logged with another server id by slave mysqlds
错误说明
MY-010661,常见的ER_NDB_BINLOG_USING_SERVER_ID_0_SLAVES_WILL_NOT错误是MySQL中出现的一道编程错误,该错误返回一个SQLSTATE(HY000),该错误会引起特定副本不能连接到数据库服务器。当使用传统MySQL复制时,该错误会被产生,指示服务器初始化在母服务器上而没有指定一个服务器ID。
常见案例
最常见的案例发生在一个多节点MySQL集群的情况下。这里,如果将任何一个节点重新启动,在这个结点上,ER_NDB_BINLOG_USING_SERVER_ID_0_SLAVES_WILL_NOT错误将会出现并中断复制进程。在传统MySQL复制中,服务器ID必须被正确指定,否则可能产生这个错误。
另外,一种常见的情况是,未在关闭主服务器时指定一个服务器ID。如果没有指定服务器ID,则复制过程不会正常运行,并可能引起ER_NDB_BINLOG_USING_SERVER_ID_0_SLAVES_WILL_NOT错误。
解决方法
如果是MySQL在多节点结构中出现ER_NDB_BINLOG_USING_SERVER_ID_0_SLAVES_WILL_NOT错误,将必须重新启动节点,并在该节点上指定一个唯一的服务器ID。首先,应在MySQL配置文件(my.cnf或my.ini)中设置一个唯一的服务器ID,例如:
server_id = ######
server-id = ######
然后,重新启动服务器即可解决上述问题。
如果在传统的MySQL复制中出现这个错误,请首先检查母服务器和从属服务器上的配置文件,并确保它们都有一个唯一的服务器ID,两者的服务器ID不能相同。此外,最好在重置服务器ID前将复制停止,以避免混乱和数据不一致问题。一旦所有服务器上有一个唯一的服务器ID,复制可以被重新连接,并且不应再出现ER_NDB_BINLOG_USING_SERVER_ID_0_SLAVES_WILL_NOT错误。