いくつか確認してください:
1) マスターの /etc/my.cnf に server_id が実際に設定されていることを確認します。
理由は次のとおりです。レプリケーションは server_id に依存しています。クエリが実行され、マスターのバイナリ ログに記録されるたびに、マスターの server_id が記録されます。デフォルトでは、server_id が /etc/my.cnf で定義されていない場合、server_id はデフォルトで 1 に設定されます。ただし、MySQL レプリケーションのルールでは、マスターの /etc/my.cnf で server_id を明示的に定義する必要があります。さらに、特定のスレーブについて、mysqld は SQL ステートメントの server_id をリレー ログから読み取る際にチェックし、それがスレーブの server_id と異なることを確認します。これにより、MySQL レプリケーションはその SQL ステートメントを安全に実行できることを認識します。このルールは、循環 (マスター-マスター、マルチマスター) レプリケーションが実装されている場合に必要です。
select @@server_id;
SQLコマンドラインで使用 して、実際にサーバーで構成を確認します。
2) スレーブの /etc/my.cnf に server_id が実際に設定されていることを確認します
理由は次のとおりです。#1と同じ理由
3) マスターの /etc/my.cnf の server_id がスレーブの /etc/my.cnf の server_id と異なることを確認します。
理由は次のとおりです。#1と同じ理由
補足: 複数のスレーブをセットアップする場合は、各スレーブがそのマスターとその兄弟スレーブとは異なる server_id を持っていることを確認してください。
理由は次のとおりです。
2 つのスレーブを持つ
マスター MASTER は server_id 1
を持ちます SLAVE1 は server_id 2
を持ちます SLAVE2 は server_id 2 を持ちます
兄弟スレーブの server_id が同じであるため、SLAVE2 でのレプリケーションが急激に遅くなります。実際、着実に遅れをとり、休憩を取り、いくつかの SQL ステートメントを処理します。これは、同一の server_id を持つ 1 つ以上のスレーブを持つマスターの障害です。これは、実際にはどこにも文書化されていない落とし穴です。私はこれを人生で何十回も見てきました。