MySQL5.1レプリケーション構築手順

参考:mysqldump使う場合はこちら
なお、InnoDBしかないDBのdumpは

mysqldump --quote-names --skip-lock-tables --single-transaction --flush-logs --master-data=2  > dump.sql

MyISAMも含まれるDBのdumpは

mysqldump --quote-names --flush-logs  > dump.sql

となる。
■マスター側作業
スレーブがマスターへ接続するためのアカウントを作成 。

mysql> GRANT REPLICATION SLAVE ON *.* TO repl@10.11.123.45 IDENTIFIED BY 'repl'; # 10.11.123.45はスレーブのIP

データディレクトリを固める。

mysql> FLUSH TABLES WITH READ LOCK;     SHOW MASTER STATUS;    <- ここでFileとPositionをメモしておく
# cd /usr/local/mysql
# tar zcvf ~/var.tgz ./var     UNLOCK TABLES;    <- ロック解除

scpでスレーブにvar.tgzを転送しておく。


■スレーブ側作業
スレーブのデータベースを止める。

# /etc/init.d/mysql-slave stop

スレーブのデータディレクトリを上書きする。

# cd /usr/local/mysql-slave
# mv var var.bak ←念のためのバックアップ。作業が終わったら消す。
# tar zxvf ~/var.tgz --same-owner

mysql-game-slave/etc/my.cnf を設置し、server-id を適当な値に設定する。
スレーブの起動。

# /etc/init.d/mysql-slave start

初期設定

mysql> CHANGE MASTER TO
	MASTER_HOST='10.11.123.44',  ←マスターのIP
	MASTER_PORT=3306,
	MASTER_USER='repl',
	MASTER_PASSWORD='repl',
	MASTER_LOG_FILE='mysql-bin.000007', ←メモっておいたFileの値
	MASTER_LOG_POS=1816; ←メモっておいたPositionの値

スレーブでレプリケーションを開始する。

mysql> START SLAVE;
mysql> SHOW SLAVE STATUSG  ←状態確認。

詳細は最速RDBMS構築ガイドの「11-3 レプリケーション」を参照のこと。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です