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错误时,可以尝试将临时关闭主服务器从服务器,然后从新启动从服务器复制功能,启动成功之后再次打开主服务器,检查解决情况。