MySQL 主従構成を再起動すると無効になる問題を解決する方法

MySQLのマスター・スレーブ構成が再起動後に機能しなくなった場合は、以下の原因が考えられます。

  1. 構成ファイルがおかしいので、スレーブ構成ファイルとマスタ構成ファイルを再確認してください。IPアドレス、ポート番号、データベース名などです。
  2. MySQL サービスが異常終了しています。再起動を実行する前に MySQL サービスが正常に終了していることを確認してください。以下のコマンドで MySQL サービスの動作状態を確認できます。
  3. systemctl status mysql
  4. MySQLサービスが正常に停止しない場合、MySQLサービスの強制停止を試すことができます。
  5. systemctl stop mariadb
  6. MySQLデータファイルの破損:再起動後にデータファイルの破損を引き起こす可能性があり、レプリケーション構成が失われます。MySQLデータファイルの修復を試すことができ、具体的な方法は次のとおりです。
  7. データベースのデータファイルをバックアップ
  8. データベースファイルを検査して修復するコマンドを実行する:mysqlcheck –all-databases -r
  9. 主従同期は遅延する場合があります。再起動後、主従同期が完了するまでに時間を要するため、再起動後に同期が遅延する可能性があります。同期状態は次のコマンドで確認できます。
  10. スレーブ状態を表示する
  11. スレーブの同期状態が「Waiting for master to send event」と表示されている場合は、マスターからのイベント送信を待っています。

上記のいずれの方法でも問題が解決しない場合には、レプリケーション構成の再設定を試行します。詳細な手順は、以下を参照してください。

  1. マスターサーバーの情報の状態を取得するには、マスターサーバーで次のコマンドを実行してください。
  2. FLUSH TABLES WITH READ LOCK;
    SHOW MASTER STATUS;
  3. 「ファイル」と「ポジション」の値をメモってください。その情報はサーバからの設定に使用されます。
  4. レプリカサーバー上で以下のコマンドを実行して、現在のレプリカのレプリケーションを停止します。
  5. スレーブを停止する。
  6. レプリカの設定のため、次のコマンドをサーバから実行します。
  7. REPLICA USER ‘レプリカユーザー名’ IDENTIFIED BY ‘レプリカパスワード’,
    MASTER_HOST=’マスターIPアドレス’,
    MASTER_USER=’マスターレプリカユーザー名’,
    MASTER_PASSWORD=’マスターレプリカパスワード’,
    MASTER_LOG_FILE=’マスターバイナリログファイル名’,
    MASTER_LOG_POS=マスターバイナリログファイル位置;
  8. 従サーバから次のコマンドを実行することで、従サーバ複製を開始します
  9. 開始スレーブ;
  10. レプリケーションの状態を確認し、レプリケーションが正常に機能していることを確認する
  11. SLAVE STATUS を表示する;
  12. 「Slave_IO_Running」と「Slave_SQL_Running」の両方が「YES」の場合、マスタースレーブレプリケーションは正常に機能していることを示します。

問題の解決に以上の方法が役立てば幸いです。それでも問題が解決しない場合は、より詳細な情報を提供していただければ、さらにサポート可能です。

bannerAds