MySQLレプリケーションで「重複キー」エラーが発生する理由は何ですか?"DUPLICATE KEY"エラーの原因
master-master複製セットアップがあります。 2つのマスタmaster1とmaster2を仮定すると、データは常にmaster1に挿入されます。
私が使用するクエリは、temp_column1がauto_incrementカラムである "INSERT INTO temp(temp_column2、temp_column3、...)VALUES( 'XXX'、 'YYY'、...)」です。 私のセットアップでは、2人のデーモンが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')
だから、私はレプリケーションを修正するためにマスター2で行2 IDを更新しています。
なぜDUPLICATE KEYエラーが常に連続して発生していますか?これには何か解決策はありますか?それはMySQLのバグですか?
AUTO_INCREMENTは複製用に正しく設定されていますか?...問題のテーブルのCREATE TABLEコマンドは何ですか? – BRFennPocock