レプリケーションに使用するユーザーは「repl」とします。
Master側の設定
Master側のmy.cnfには、少なくとも次の設定を入れておきます。
## gtid gtid_mode = on enforce_gtid_consistency = on ## binary log log-bin = mysql-bin ## replication server_id = 1 log_slave_updates
GTIDを使った設定にすることにしました。
Slave側の設定
Slave側の設定は、次のように。
## gtid gtid_mode = on enforce_gtid_consistency = on ## binary log log-bin = mysql-bin ## replication server_id = 2 log_slave_updates read_only = on
一応、Slaveは読み取り専用にしています。
レプリケーション用のユーザーの作成
Master側で、レプリケーション用のユーザーの作成を行います。
今回作成するユーザーは、以下としました。
repl / password
では、実行。
CREATE USER 'repl'@'172.17.0.0/255.255.255.0' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'172.17.0.0/255.255.255.0';
接続元は、今回は「172.17.0.0/255.255.255.0」の範囲で許可するものとします。
レプリケーションの設定
ここまでできたら、あとはSlave側でMasterへの接続設定と、レプリケーションの開始を指示します。
Slave側で、以下のコマンドを実行。
CHANGE MASTER TO MASTER_HOST = '172.17.0.2', MASTER_PORT = 3306, MASTER_AUTO_POSITION = 1, MASTER_HEARTBEAT_PERIOD = 60; START SLAVE USER = 'repl' PASSWORD = 'password';
「SHOW SLAVE STATUS」を実行し
mysql> SHOW SLAVE STATUS\G
「Slave_IO_Running」と「Slave_SQL_Running」がともに「Yes」となっていれば、レプリケーション設定が完了です。
Slave_IO_Running: Yes Slave_SQL_Running: Yes
あとは更新系のSQLを実行して、変更内容がSlaveに伝播していることを確認しましょう。