我有一个在一台服务器上运行的MySQL slave,但我需要迁移到一台新服务器。我在原始服务器上关闭了我的slave,将数据库复制到新服务器并启动了MySQL。
我使用Change Master To
更新了主配置,指示主服务器名称,master_log_pos(退役从属服务器上exec_master_log_pos的相同值)等。
我启动了奴隶并遇到了几个错误:
我纠正了两个错误,并重新启动了MySQL。
现在,在我的奴隶状态下,我不再看到任何错误,但Exec_Master_Log_Pos
不会增加。 Read_Master_Log_Pos
不断变化,这意味着它正在接收主更新,但是奴隶似乎没有在日志文件中执行更改。
Read_Master_Log_Pos: 171716503
Exec_Master_log_Pos: 168097060
如何强制奴隶开始执行日志中的语句?我试图停止并启动奴隶(都使用slave启动/停止并重启mysql本身),但似乎都没有任何影响。
答案 0 :(得分:0)
事实证明我有一个崩溃的表,MySQL在修复表之前无法对从属服务器运行任何更新。我在它上面运行mysqlcheck -r
,修复了表,重新启动了奴隶,并且所有事情都恢复正常。
希望这可以帮助将来陷入类似问题的人。