MySQL レプリケーションでのデータベースの不一致の解決
MySQL レプリケーション設定では、マスター サーバーとスレーブ サーバーのデータベース コンテンツの間で不一致が発生する可能性があります。スレーブが長期間切断され、その後再接続された場合。このような状況でデータベースを再同期するには、次の手順を実行できます。
マスター サーバーで:
- RESET MASTER を実行してマスターをリセットします。 ;.
- FLUSH TABLES WITH READ LOCK を使用して読み取り操作のテーブルをロックします。
- SHOW MASTER STATUS; を使用してマスターの現在のレプリケーション ステータスを取得します。 Master_Log_File と Master_Log_Pos に返された値をコピーします。
- mysqldump -u root -p --all-databases > を使用して、データベース全体をマスターからダンプ ファイルにエクスポートします。 /path/mysqldump.sql.
スレーブ サーバーで:
- STOP SLAVE; を使用してスレーブのレプリケーション プロセスを停止します。
- mysql -uroot -p < を使用して、マスターのデータベース ダンプをスレーブにインポートします。 mysqldump.sql.
- RESET SLAVE を実行してスレーブのレプリケーション構成をリセットします。
- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001 を使用して、マスターの現在位置と一致するようにスレーブのレプリケーション構成を更新します。 '、MASTER_LOG_POS=98;。 「mysql-bin.000001」と「98」を、マスター サーバーで実行された SHOW MASTER STATUS コマンドから取得した値に置き換えます。
- START SLAVE; を使用して、スレーブのレプリケーション プロセスを再度開始します。
検証:
同期が成功したことを確認するには、SHOW SLAVE STATUS を実行します。スレーブサーバー上で。出力には、Slave_IO_Running と Slave_SQL_Running の両方が Yes と表示されるはずです。
以上がスレーブの切断後に MySQL レプリケーションを再同期するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。