【发布时间】:2011-12-28 13:10:42
【问题描述】:
MySQL 复制中出现“DUPLICATE KEY”错误的原因是什么?
我正在设置主-主复制。假设有两个master,master1和master2,数据一直插入到master1中。
我使用的查询是“INSERT INTO temp (temp_column2, temp_column3,...) VALUES ('XXX', 'YYY',...)”,其中 temp_column1 是 auto_increment 列。
在我的设置中,两个守护进程将数据插入到 master1 中,它正在创建重复键错误。
我不知道为什么会这样。大多数情况下,当问题发生时,重复键错误是该行与其下一行之间的冲突。
例如:
#### on master1 ####
temp_column1, temp_column2, temp_column3, timestamp
Row1: 1 'XXX', 'YYY', 2011-12-28 12:00:00
Row2: 3 'AAA', 'BBB', 2011-12-28 12:00:00
#### on master2 (replication mysql instance) ####
temp_column1, temp_column2, temp_column3, timestamp
Row1: 1 'AAA', 'BBB', 2011-12-28 12:00:00
Row2: (Duplicate key error) when trying to insert row1 ('XXX', 'YYY')
所以,我正在更新 master2 中的 Row2 id 以修复复制。
为什么 DUPLICATE KEY 错误总是不断发生?有什么解决办法吗?是不是mysql的bug?
【问题讨论】:
-
您的 AUTO_INCREMENT 设置是否正确以进行复制? ... 有问题的表的 CREATE TABLE 命令是什么?
标签: mysql