web-dev-qa-db-ja.com

WindowsサーバーでのMySQLレプリケーション

両方のサーバーがウィンドウベースであるときにMySQL 5.6でレプリケーション(マスター/スレーブ)をセットアップする方法私が気に入っているのは、Linuxベースのレプリケーションです。 Windowsベースのサーバーで複製を経験した人を助けてください。

5
Black

Windowsサーバーでのレプリケーションセットアップは、他のシステムでのレプリケーションセットアップと同等です: 公式マニュアルでは詳細なガイドを提供しています 要するに:

  1. 両方のサーバーで異なるサーバーIDを構成し、マスターでバイナリログをアクティブにします。まだ行っていない場合、最も一般的な方法は、my.iniファイルを変更してサービスを再起動することです(net restart mysql)。

    [mysqld]
    log-bin
    server-id = 1
    

    マスターがスレーブノードからアクセス可能であり、localhostにバインドされていないことも確認してくださいbind-address = 127.0.0.1

  2. マスターにスレーブをREPLICATION SLAVE権限で接続するためのユーザーを作成します(これにはMySQLコマンドラインを使用します)。

    mysql master> CREATE USER 'user_name'@'ip.of.the.slave' IDENTIFIED BY 'password';
    mysql master> GRANT REPLICATION SLAVE ON *.* TO 'user_name'@'ip.of.the.slave';        
    
  3. マスターのバックアップを作成し、それをスレーブに適用します。これを行うにはいくつかの方法があります(サーバーを停止してファイルをコピーすることで機能します)が、最も簡単な方法はmysqldumpを使用することです(sql-serverインストールのbinディレクトリに移動します(fe C:\ Program Files\MySQL\MySQL Server)。 5.7\bin)。また、これを両方のコマンドに追加して、資格情報を提供する必要がある場合があります:-uroot -pPassword)

    (on the master windows command line) mysqldump --all-databases --master-data > dump.sql
    (on the slave windows command line ) mysql < dump.sql
    
  4. Dump.sqlの最初に、次のような行があります。

    -- CHANGE MASTER TO MASTER_LOG_FILE = 'file_name', MASTER_LOG_POS = file_pos;
    

    これらのパラメーターを使用して、スレーブでレプリケーションを構成します。

    mysql slave> CHANGE MASTER TO MASTER_Host = 'ip.of.the.master',
                     MASTER_USER = 'user_name_you_just_created',
                     MASTER_PASSWORD = 'password_you_just_defined',
                     MASTER_LOG_FILE = 'file_name',
                     MASTER_LOG_POS = file_pos;
    

    MASTER_LOG_POSなどの整数の引用符は使用しないでください)。

  5. これまですべて問題なければ、スレーブでレプリケーションを開始します。

    mysql slave> START SLAVE;
    

    実行されていることを確認するには、次のコマンドを実行します。

    mysql slave> SHOW SLAVE STATUS;
    

    そして探します:

       Slave_IO_Running: Yes
      Slave_SQL_Running: Yes
    

GTIDベースのレプリケーションは少し異なり、私は言及していません。

9
jynus