文档解释
Error number: MY-013999; Symbol: ER_RPL_REPLICA_SOURCE_UUID_HAS_CHANGED_HOST_PORT_UNCHANGED; SQLSTATE: HY000
Message: The server_uuid for source server \’%s:%d\’ has changed from %s to %s. This should not happen unless you have changed it manually.
MySQL ER_RPL_REPLICA_SOURCE_UUID_HAS_CHANGED_HOST_PORT_UNCHANGED
错误说明
此MySQL错误ER_RPL_REPLICA_SOURCE_UUID_HAS_CHANGED_HOST_PORT_UNCHANGED显示了在运行时更改复制(REPLICA)源上的位置以外,其UUID也发生了更改。此复制源可能位于不同的主机上,但它的端口必须保持不变。通常这种错误代表着复制源在不断发生更改,这是复制延迟的主要原因。
常见案例
ER_RPL_REPLICA_SOURCE_UUID_HAS_CHANGED_HOST_PORT_UNCHANGED错误通常发生在复制源IP地址更改,或者复制源系统运行了MySQL实例重新启动或关闭(这将使UUID发生变化)。譬如:从源MySQL实例运行“FLUSH TABLES WITH READ LOCK”命令或关闭实例时,一个UUID更改将会产生真实的并发情况和其他行为问题。
解决方法
1.使用新的UUID更新相应的复制客户端的配置文件(通常位于‘/etc/my.cnf’)来匹配服务器端UUID。
2.停止复制客户端进程(使用“mysqladmin stop slave”),然后重新启动复制客户端的进程(使用更新配置文件中的新UUID)(如“CHANGE MASTER TO”语句)
3.如果复制主机和从机明显是用同一台服务器上的两个不同实例,两个实例必须具有相同的UUID。因此,如果主机实例和从机实例是同一台服务器,最好只使用一个UUID,这样做将避免这样的问题。
4.可以将保留备份作为主备实例迁移的一个有效的解决方法。将现有的从机的连接UUID(作为备份UUID)复制到主机配置文件,即‘/etc/my.cnf’,并将MySQL主机实例中的UUID(也称为活动UUID)复制到复制客户端的配置文件中。
5.涉及到将新的UUID更新到MySQL实例的配置文件中的操作,需要重启MySQL实例,以使更改生效。
6.如果没有因UUID变更而引起延迟,但此错误仍然出现,可以尝试重新启动复制,以避免错误发生。