今天一台mysql服务器5.5.8同步5.0.27时slave停止,错误消息如下: Last_Error: Error ‘master may suffer from http://bugs.mysql.com/bug.php?id=24432 so slave stops; check error log on slave for more info’ on query. Default database: ‘fb’. Query: ‘INSERT into ON DUPLICATE KEY UPDATE ‘’
但是测试5.5.8同步5.0.45的时候发现这个bug还未修复,只是复制不再停止,也没有提示错误。本来猜测是innodb_autoinc_lock_mode导致的,但是innodb_autoinc_lock_mode=1同步innodb_autoinc_lock_mode=0没有问题,因为对与”Mixed-mode inserts”,两者的区别的是在是否会预先分配,导致”空隙”出现而影响到下一次插入,但是mysql的binlog中,在insert语句之前会记录INSERT_ID(SET INSERT_ID=6/!/;),因此也不会出现问题。
关于mysql对与auto_increment id的处理可以查看官方的文档,写的非常清晰。
因此建议尽量不要使用高版本同步低版本,这样会有潜在的风险导致数据不一致,如果非要同步,建议定期检查数据一致性,推荐 使用mk-table-checksum