■ 前提条件
[Server IDの設定]
マスターとスレーブのサーバーがそれぞれ一意のserver-idを持っている必要があるので下記のような設定をしておく。値はサーバーのIPの第4オクテットの値でも設定しておけばいいと思う。
# vi /etc/my.cnf.d/server.cnf
server-id = xxx
[binlogの設定]
レプリケーションを使用するためにBinlogが有効になっていないといけないので下記のような設定をしておく。
# vi /ect/my.cnf.d/server.cnf
# BINARY LOGGING #
log_bin = /var/lib/mysql/mysql-bin
expire_logs_days = 14
sync_binlog = 1
■ 非同期レプリケーションをする場合の設定
この設定例では、マスターサーバーもスレーブサーバーになれる準備をしておく。
[マスターサーバーでの作業]
マスターサーバーでは安全のためにスレーブの起動を止める設定を入れておく。
# vi /etc/my.cnf.d/server.cnf
# Replication #
skip-slave-start
DBサーバーにログインする。
$ mysql -u root -p
スレーブからのアクセスに必要なアカウントの作成をする。
> GRANT REPLICATION SALVE ON *.* TO ‘ユーザー名’@’IP(スレーブサーバー)’ IDENTIFIED BY ‘パスワード’;
アカウントの反映をする。
> flush privileges;
DBサーバーからログアウトする。
> quit
[スレーブサーバーでの作業]
DBサーバーにログインする。
$ mysql -u root -p
マスターサーバーをスレーブにした場合のアクセスに、必要なアカウントの作成をする。
> GRANT REPLICATION SALVE ON *.* TO ‘ユーザー名’@’IP(マスターサーバー)’ IDENTIFIED BY ‘パスワード’;
アカウントの反映をする。
> flush privileges;
レプリケーションを開始する。
> CHANGE MASTER TO master_host=’IP(マスターサーバー)’, master_port=3306, master_user=’ユーザー名’, master_password=’パスワード’, master_use_gtid=current_pos;
> start slave;
レプリケーションが正常に動いているか確認する。
> SHOW SLAVE STATUS\G
DBサーバーからログアウトする。
> quit