昨天修改一个表的字段,发现主从复制同步失效了,但同步进程没有出错,mysql日志也没有出错,仔细查找了一下原因,发现是新增的自增主键字段的起始值在主从库上不一致,导致按主键更新数据时无法在从库找到对应记录。事情经过如下:
表table1(主库为innodb类型,从库为MyISAM类型),有一自增主键pid,现将pid改成非自增,非主键,另外增加一自增主键。
alter table table1 modify pid int not null;
alter talbe table1 drop primary key;
alter table table1 add aid int not null auto_increment primary key first;
结果主库上表table1的auto_increment属性自动没有了,默认重新从1开始,但从库上表table1的auto_increment属性还有,还是以前pid的最大值。
奇怪的是我把从库也改成innodb就没有这个问题了,怀疑是mysql的bug,在此记录一下,以后要注意了。