起因
某日mysql主从同步发生了错误,此时发现从库不再执行同步操作,于是在从库执行show slave status\G
发现如下错误:
上图中标红色的需要重点关注。
解决办法
之前出现其他常规的sql错误一般情况下我们都选择忽略(可能会造成一定的数据不一致),但是这个错误无法忽略,于是采用了重建从库同步的方式来解决:
- 首先停止从库的同步操作:
stop slave;
- 然后重新执行从库配置
CHANGE MASTER TO MASTER_HOST='主库IP地址',MASTER_USER='repl_user',MASTER_PASSWORD='12345678',MASTER_PORT=3306,MASTER_LOG_FILE='mysql-bin.000114',MASTER_LOG_POS=346508643;
注意此配置语句中的最后2个参数:
MASTER_LOG_FILE:这个需要指定当前从库读取到主库的哪个文件了 对应上面图片中的就是Relay_Master_Log_File
的值
MASTER_LOG_POS:这个需要制定当前从库读取到主库文件的哪个位置了,对应上面图片中的就是Exec_Master_Log_Pos
以上两个值一定不能搞错
3. 重新启用同步:
start slave
- 检查执行状态:
show slave status\G