文档解释
Error number: MY-010540; Symbol: ER_RPL_RECOVERY_REPLICATE_SAME_SERVER_ID_REQUIRES_POSITION; SQLSTATE: HY000
Message: Error during –relay-log-recovery: replicate_same_server_id is in use and sql thread’s positions are not initialized, hence relay log recovery cannot happen.
Error number: MY-010540; Symbol: ER_RPL_RECOVERY_REPLICATE_SAME_SERVER_ID_REQUIRES_POSITION; SQLSTATE: HY000
错误说明:
MySQL 的 MY-010540 错误放出,当你尝试用V4式二进制格式重播时,它表面你尝试在拥有相同ID的复制服务器之间分配基于位置的复制。因此,这放出了 MY-010540 错误消息。
常见案例
如果您的MySQL中有多台服务器复制,它们具有相同的ID,则可能会发生上述错误。此外,设置Master-Master复制时也可能导致相同的错误,因为两个主复制的位置是相同的,因此而发生MY-010540错误。
解决方法:
首先,应检查MySQL中的所有复制服务器是否具有相同的ID。如果是这种情况,则可以编辑MySQL配置文件,使得每个服务器拥有不同的复制ID。
其次,要解决此错误,还可以配置一致性信息来明确每个服务器的复制位置,例如,使用CHANGE MASTER命令来配置每个复制服务器的文件和位置,这样一来就可以解决此错误,复制也可以正常运行。
此外,如果您要进行复制设置,可以在复制服务器之间分配不同的ID,因此您就可以避免此错误,例如,在MySQL配置文件中,可以重新分配Server-ID Thats以跨不同服务器进行复制。
综上所述,MySQL MY-010540 错误是由于尝试用V4式二进制格式重播以及尝试在拥有相同ID的复制服务器之间分配基于位置的复制而发生的。要解决此错误,可以检查MySQL服务器的ID,并重新分配不同的ID,并使用CHANGE MASTER命令来表明每个服务器的文件和位置。