MySQL Error number: MY-010549; Symbol: ER_RPL_SLAVE_MASTER_UUID_HAS_CHANGED; SQLSTATE: HY000

文档解释

Error number: MY-010549; Symbol: ER_RPL_SLAVE_MASTER_UUID_HAS_CHANGED; SQLSTATE: HY000

Message: The master’s UUID has changed, although this should not happen unless you have changed it manually. The old UUID was %s.

错误说明

MySQL的ER_RPL_SLAVE_MASTER_UUID_HAS_CHANGED错误,指的是在使用MySQL的复制特性时,在从服务器上检测到主服务器的UUID(Universally Unique Identifier)已经发生变化,但是从服务器上的采用的是MySQL的旧版本的UUID,将会导致复制进程失败。

常见案例

这个错误最常见的发生在MySQL8版本以前版本到MySQL8版本以后的升级或者重装。由于MySQL8及更新版本采用新格式的UUID来表示一个架构,由于MySQL8以前的版本与该UUID无法兼容,因此会出现此错误。此外,主服务器上的MySQL实例备份,也可能导致UUID的变化,避免这类问题的出现,最好使用MySQL5.7版本以后的备份参数:UUID添加相关参数来指定UUID,而不要备份UUID。

解决方法

1、首先,从服务器上删除已经存在的master.info和relay.log文件,可以解决这个错误。

一般处理方法及步骤

(1)查看主服务器上的UUID,使用SHOW MASTER STATUS命令查看

(2)在从服务器使用CHANGE MASTER TO参数来重新指定UUID,语法如下:

CHANGE MASTER TO

MASTER_HOST=,

MASTER_USER=,

MASTER_PASSWORD=,

MASTER_UUID=,

MASTER_LOG_POS=

其中即为主服务器的UUID信息

(3)运行START SLAVE命令,启动从服务器的复制功能。

如果采用以上方法,依然无法解决ER_RPL_SLAVE_MASTER_UUID_HAS_CHANGED错误时,可以尝试将临时关闭主服务器从服务器,然后从新启动从服务器复制功能,启动成功之后再次打开主服务器,检查解决情况。

你可能感兴趣的