マスター側をマスターに設定する
次の項目をmy.cnfに書き足し、mysqldを再起動する。
server-id=n
log-bin=/var/lib/mysql/mysqld-bin
set-variable=expire_logs_days=7 (入れておかないといつまでもバイナリログが残る)
マスター側でログ順序を確認しつつmysqldumpする (ロック関係とか要調査)
show master status; で File(バイナリログ名) と Position(ログ位置) をチェックする。
mysqldump -u root -p -database ${database} > dump.sql
スレーブ側にdumpファイルを転送
scpとか
スレーブ側のmysqlを設定する
server-id=11
log-bin=/var/lib/mysql/mysqld-bin
set-variable=expire_logs_days=7
relay-log=/var/lib/mysql/relay-bin # リレーログの場所も明示しないと /var/run/mysql の下にいっちゃう
スレーブ側でインポート
mysql -u root -p < dump.sql
スレーブ側をスレーブとして設定する
change master to master_host=${MASTER_HOST} master_user=${MASTER_USER} master_password=${MASTER_PASSWORD} master_log_file=${LOG_FILE_NAME} master_log_pos=${LOG_POS};
start slave;
参考: http://dev.mysql.com/doc/refman/5.1/ja/replication-howto.html
参考: http://www.sssg.org/blogs/naoya/archives/1240
参考: http://arena.hyogo-dai.ac.jp/~kawano/?Install%20Log/CentOS5/MySQL_repl