sql >> データベース >  >> RDS >> Mysql

Mysqlレプリケーションの場合にマスターとスレーブのデータベースが異なる場合にMysqlDBを再同期するにはどうすればよいですか?

    これは、マスタースレーブレプリケーションを最初から再同期するための完全なステップバイステップの手順です:

    マスターで:

    RESET MASTER;
    FLUSH TABLES WITH READ LOCK;
    SHOW MASTER STATUS;
    

    そして、結果の値をコピーします どこかの最後のコマンドの。

    クライアントへの接続を閉じずに(読み取りロックが解放されるため)、コマンドを発行してマスターのダンプを取得します。

    mysqldump -u root -p --all-databases > /a/path/mysqldump.sql
    

    これで、ダンプがまだ終了していなくても、ロックを解除できます。これを行うには、MySQLクライアントで次のコマンドを実行します。

    UNLOCK TABLES;
    

    次に、scpまたはお好みのツールを使用してダンプファイルをスレーブにコピーします。

    奴隷で:

    mysqlへの接続を開き、次のように入力します:

    STOP SLAVE;
    

    次のコンソールコマンドを使用してマスターのデータダンプをロードします:

    mysql -uroot -p < mysqldump.sql
    

    スレーブログとマスターログの同期:

    RESET SLAVE;
    CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=98;
    

    上記のフィールドの値は、前にコピーしたものです。

    最後に、次のように入力します:

    START SLAVE;
    

    次のように入力した後、すべてが再び機能していることを確認するには:

    SHOW SLAVE STATUS;
    

    表示されるはずです:

    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
    

    それでおしまい!



    1. SQL Serverに保存すると、DateTimeのミリ秒が変更されます

    2. MariaDB Enterpriseとは何ですか?ClusterControlで管理する方法は?

    3. SQLテーブルの重複レコードを削除するためのストアドプロシージャ

    4. PostgreSQL:全文検索-部分的な単語を検索する方法は?