
まず、レプリケーションの設定から
my.cnfに
[mysqld]
binlog_do_db=hoge
server_id=n
server_idは稼働台数分記述が必要、かつ重複IDは不可。
そしてレプリケーション用のユーザーを下記GRANTオプションを利用し追加。
GRANT REPLICATION SLAVE, REPLICATION CLIENT
mysqldumpコマンドを利用しマスターから最新DBをダンプする。
その時にmysqldumpのオプション”–master-data”を使う。
# mysqldump DBNAME –master-data –single-transaction > DBNAME.sql
INNODBを利用しているのであれば”–single-transaction”オプションを利用することで、テーブルロックを回避できる。MyISAMの場合は不可能。
スレーブ側で接続設定
mysql > CHANGE MASTER TO MASTER_HOST='master_host_name',MASTER_USER='USERNAME', MASTER_PASSWORD='USERPASS';# mysql DBNAME < DBNAME.sql
ダンプファイルにマスターのログIDとポジションが記載されているのでそれを利用しCHANGE MASTER TOを発行する。
mysql > CHANGE MASTER TO MASTER_LOG_FILE='binlog_name', MASTER_LOG_POS=log_position;mysql > SLAVE START;mysql > SHOW SLAVE STATUS\G
Slave_IO_Runningと、Slave_SQL_RunningがYesになっていれば成功。
マスター側で更新系クエリを発行しデータがスレーブに反映しているか確認。
以上。