[MySQL] レプリケーション (Replication)


MySQLのレプリケーション貼り方。
これ滅多に設定やるものでみないので、時間たつと毎回忘れる。
メモとってみる。

masterサーバー

① Masterのデータベースをロックする

mysql -u root -p -e ‘FLUSH TABLES WITH READ LOCK;’

② Masterの「File」と「Position」の値をチェック

mysql -u root -p -e ‘SHOW MASTER STATUS;’

③ Masterのデータベースのバックアップを取る

mysqldump -u root -p rails_production > rails_production.sql

④ Masterのロックを外す

mysql -u root -p -e ‘UNLOCK TABLES;’

⑤ SlaveにMasterのデータをコピーする

mysql -u admin -p -h slave.com rails_production < rails_production.sql

⑥ Slaveを一旦ストップ

mysql -u admin -p -h slave.com -e ‘STOP SLAVE;’

⑦ Slave側でReplicationの設定をする

mysql -u admin -p -h slave.com -e ”
CHANGE MASTER TO MASTER_HOST=’***.***.***’,
MASTER_USER=’slave’,
MASTER_PASSWORD=’slave_password’,
MASTER_LOG_FILE=’mysqld-bin.000001′,
MASTER_LOG_POS=98;”

⑧ Slaveをスタートする

mysql -u admin -p -h slave.com -e ‘START SLAVE;’

レプリケーション状態を確認するためには

SHOW SLAVE STATUS\G

参考サイト

http://programnet.hp.infoseek.co.jp/database/backup.html
http://deploy.winefun.jp/