问题:Binlog文件自动清理导致同步中断。为修复 syncer 服务进行了 binlog 补齐及 FLUSH LOGS 操作触发 MySQL 5.7 高版本软件兼容性问题。
通常我们遇到MySQL主从数据库同步不一致时,我们会做一下操作:
- 拷贝 binlog 备份至主库 binlog 目录
- 修改 mysql-bin.index 文件,追加新拷贝的 binlog 日志
- 修改文件属组为 mysql
- 执行 flush logs 刷新日志状态
MySQL 5.7 高版本解决方案
MySQL 5.7 高版本遇到MySQL主从数据库同步不一致时,我们必须要这样做:
- 拷贝 binlog 备份至主库 binlog 目录
- 修改 mysql-bin.index 文件,追加新拷贝的 binlog 日志
- 修改文件属组为 mysql
- 执行 flush logs 刷新日志状态
- 所有从库执行 reset slave
- 重新 CHANGE MASTER AUTO_POSITION=1
- 所有从库执行 start slave
这个是MySQL 5.7 高版本的一个系统Bug,可以通过运维技术手段进行避免。