レプリケーション中に無視しても安全なエラーコードを知っている人はいますか?つまり、スレーブはマスターと一貫性を保ちます。
例えば
[mysqld]
slave-skip-errors=1007,1008,1050,1051,1054,1060,1061,1068,1094,1146
省略した例は 121 (Deadlock found when trying to get lock; try restarting transaction, Error_code: 1213; handler error HA_ERR_LOCK_DEADLOCK
)、私には安全に思えますか?
私はこの問題についてほとんどアドバイスを見つけなかったので、stackoverflowには良いアドバイスのようです...
ボールを転がすために、マニュアルから始めましょう
option_mysqld_slave-skip-errors
MySQL 5.7は、エラーコードリスト1007、1008、1050、1051、1054、1060、1061、1068、1094、1146に相当する追加の省略値ddl_exist_errorsをサポートします。
含まれるもの:
エラー:1007 SQLSTATE:HY000(ER_DB_CREATE_EXISTS)
メッセージ:データベース '%s'を作成できません。データベースが存在しますデータベースがすでに存在するため、データベースの作成に失敗しました。既存のデータベースを本当に置き換えたい場合は、最初にデータベースを削除します。ステートメントでエラーが発生しないで既存のデータベースを保持する場合は、CREATE DATABASEステートメントにIF NOT EXISTS句を追加します。
エラー:1008 SQLSTATE:HY000(ER_DB_DROP_EXISTS)
メッセージ:データベース '%s'を削除できません;データベースが存在しません
エラー:1050 SQLSTATE:42S01(ER_TABLE_EXISTS_ERROR)
メッセージ:テーブル '%s'はすでに存在します
エラー:1051 SQLSTATE:42S02(ER_BAD_TABLE_ERROR)
メッセージ:不明なテーブル '%s'
エラー:1054 SQLSTATE:42S22(ER_BAD_FIELD_ERROR)
メッセージ: '%s'の不明な列 '%s'
エラー:1060 SQLSTATE:42S21(ER_DUP_FIELDNAME)
メッセージ:列名 '%s'が重複しています
エラー:1061 SQLSTATE:42000(ER_DUP_KEYNAME)
メッセージ:キー名 '%s'が重複しています
エラー:1068 SQLSTATE:42000(ER_MULTIPLE_PRI_KEY)
メッセージ:複数の主キーが定義されています
エラー:1094 SQLSTATE:HY000(ER_NO_SUCH_THREAD)
メッセージ:不明なスレッドID:%lu
エラー:1146 SQLSTATE:42S02(ER_NO_SUCH_TABLE)
メッセージ:テーブル '%s。%s'は存在しません
しかし、デイブのコメントを支持して:
通常、スレーブでエラーが発生するとレプリケーションが停止します。これにより、データの不整合を手動で解決できます。このオプションにより、ステートメントがオプション値にリストされているエラーのいずれかを返す場合、スレーブSQLスレッドはレプリケーションを続行します。
エラーが発生する理由を完全に理解していない場合は、このオプションを使用しないでください。レプリケーションセットアップとクライアントプログラムにバグがなく、MySQL自体にもバグがない場合、レプリケーションを停止するエラーは発生しません。このオプションを無差別に使用すると、スレーブがマスターと同期できなくなり、なぜこれが発生したのか理解できなくなります。