我有一个在一台服务器上运行的 MySQL 从属服务器,但我需要迁移到一台新服务器。我关闭了原始服务器上的从属服务器,将数据库复制到新服务器并启动了 MySQL。
我使用Change Master To
更新了Master配置,指示了主服务器名称、master_log_pos(与停用的从服务器上的exec_master_log_pos的值相同)等。
我启动了从属设备并遇到了一些错误:
- 新从服务器上的服务器 ID 意外与主服务器服务器 ID 匹配
- 新从站上的临时文件夹不存在。
我更正了两个错误,并重新启动了 MySQL。
现在在我的从属状态中,我不再看到任何错误,但 Exec_Master_Log_Pos
不会增加。 Read_Master_Log_Pos
不断变化,这意味着它正在接收主站更新,但从站似乎没有执行日志文件中的更改。
Read_Master_Log_Pos: 171716503
Exec_Master_log_Pos: 168097060
如何强制从站开始执行日志中的语句?我尝试停止和启动从站(都使用从站启动/停止并重新启动 mysql 本身),但似乎都没有任何影响。
最佳答案
事实证明,我有一个崩溃的表,并且在表修复之前 MySQL 无法对从属服务器运行任何更新。我在上面运行了 mysqlcheck -r ,修复了表,重新启动了从属服务器,一切都恢复正常。
希望这可以帮助将来遇到类似问题的人。
关于MySQL 从属设备未更新/同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18004546/