昨天修改一个表的字段,发现主从复制同步失效了,但同步进程没有出错,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,在此记录一下,以后要注意了。
在一次表结构调整中,因自增主键起始值不一致导致主从库同步失败。通过对表table1进行一系列修改操作后,发现在不同存储引擎下主从库自增主键行为存在差异。
256

被折叠的 条评论
为什么被折叠?



