MySQLのレプリケーション設定まとめ
レプリケーション用ユーザーの作成
mysql> GRANT REPLICATION SLAVE ON *.* TO repl@'10.6.25.0/255.255.255.0' IDENTIFIED BY 'qa55wd';
マスタの設定
バイナリログとserver_idをセットする。
[mysqld] log-bin server-id=10
再起動必要。
マスタのバックアップ取得とポジションの確認
- 何らかの方法で更新がされない状態を作り出す。(サービス止めるなど)
- SHOW MASTER STATUS;でバイナリログの位置情報を確認
- mysqldump等でバックアップ
- サービス再開 (バックアップと位置情報が確認できれば再開しても大丈夫なはず)
mysql> SHOW MASTER STATUS; +------------------+----------+--------------+------------------+ | File | Position | Binlog_do_db | Binlog_ignore_db | +------------------+----------+--------------+------------------+ | mymaster-bin.001 | 359 | | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)
スレーブの設定
- バックアップからDBを作成
- my.cnfにスレーブの設定
[mysqld] server-id=11 #master-host=mymaster #master-user=repl #master-password=qa55wd
- CHANGE MASTER TO で同期設定
mysql> CHANGE MASTER TO -> MASTER_HOST = 'mymaster', -> MASTER_USER = 'repl', -> MASTER_PASSWORD = 'qa55wd', -> MASTER_LOG_FILE = 'mymaster-bin.001', -> MASTER_LOG_POS = 359; Query OK, 0 rows affected (0.06 sec)
- START SLAVEでスレーブスタート
mysql> START SLAVE; Query OK, 0 rows affected (0.01 sec)