问题现象:操作人员在主库上通过mysql可视化管理工具sqlyog编辑表结构(增加一个字段)后,导致mysql主从同步sql同步进程中断
从库端“show SLAVE STATUS”查看中断报错:某个字段主库有,从库没有;
先解决主从同步中断问题:
1、停止从库同步:stop slave;
2、手工在从库新增对应字段;
3、启动从库同步:start slave;
主从同步恢复
后续分析:
查看主从库binlog:新增该字段的sql语句在主库binlog有,从库relay-bin也有,但从库binlog没有!说明该操作的sql在主库成功执行,也同步到了从库,但在从库执行失败,对应sql类似如下:
直接原因:第一行后面有个^M,导致从库执行异常
根本原因:主从库字符集“SHOW VARIABLES LIKE 'character_set_%';”
主库character_set_database、character_set_server为utf8
从库上述两个字符集为latin1
解决:修改my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character-set-server = utf8
重启从库mysql,模拟之前操作,binlog里面仍然有^M,但从库成功执行。