mycat 添加数据时报错主键已存在(duplicate entry '22' for key 'PRIMARY')问题解决

Posted sky蒲公英

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mycat 添加数据时报错主键已存在(duplicate entry '22' for key 'PRIMARY')问题解决相关的知识,希望对你有一定的参考价值。

前端时间项目优化修改,因使用的mycat 分库分表机制,部分库表用到了分库配置,本地测试修改部分正常。但上到服务器上时添加数据会报错主键id已存在,duplicate entry '22' for key 'PRIMARY'。经过一段时间排查分析,确定为经过mycat添加数据时会返回以前已经存在的id,mycat采用的是主键id自增机制,所以导致无法正常添加。mycat配置没有问题,最终定位在本地是用mysql数据连接,使用的是mysql添加数据,服务器使用的是mycat连接,使用的是mycat添加数据。mycat无法识别到mysql增加数据时的自增id,导致mysql的自增id与mycat的自增id不同步。问题原因找到了,那就可以解决这个问题了。修改mycat库中的mycat_sequence表中的对应分库表的最大id值数据,然后重启mycat就正常了。mycat与mysql结合使用,更好的实现了读写分离,分库分表管理。

以上是关于mycat 添加数据时报错主键已存在(duplicate entry '22' for key 'PRIMARY')问题解决的主要内容,如果未能解决你的问题,请参考以下文章

Mycat 设置全局序列号

MyCAT全局序列号-数据库方式

MyCAT全局序列号

读书笔记-Mycat权威指南-09-全局序列号

Mycat学习实战-Mycat全局主键

Mycat实战之主键数据库自增方式