MySQLでレプリケーションを設定

MySQL

レプリケーションを使用する事で負荷分散やバックアップを行えます。

db1(192.168.1.1)をマスター
db2(192.168.1.2)をスレーブ
とします。

db1側
設定
[root]# vi /etc/my.cnf
[mysqld]
server-id = 1001

再起動
[root]# /etc/init.d/mysql restart

db2側
設定
[root]# vi /etc/my.cnf
[mysqld]
server-id = 1002
read_only

再起動
[root]# /etc/init.d/mysql restart

db1側
ログイン
[user]$ mysql -u root -p

スレーブユーザー追加
mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON . TO ‘repl’@’192.168.1.2’ IDENTIFIED BY ‘hoge’;

テーブルロック
mysql> FLUSH TABLES WITH READ LOCK;

バイナリログ確認
mysql> SHOW MASTER STATUS;
mysql-bin.000026
303312

db2側
ログイン
[user]$ mysql -u root -p

スレーブ停止
mysql> STOP SLAVE;

スレーブ初期化
mysql> RESET SLAVE;

マスター情報設定
mysql> CHANGE MASTER TO
> MASTER_HOST=’192.168.1.1′,
> MASTER_PORT=3306,
> MASTER_USER=’repl’,
> MASTER_PASSWORD=’hoge’,
> MASTER_LOG_FILE=’mysql-bin.000026′,
> MASTER_LOG_POS=303312
> ;

スレーブ開始
mysql> START SLAVE;

スレーブ確認
mysql> SHOW SLAVE STATUS \G
Slave_IO_Running
Slave_SQL_Running
が、Yesなら成功です。

db1側
テーブルアンロック
mysql> UNLOCK TABLES;

参考サイト:
http://phpspot.net/php/pg%83%8C%83v%83%8A%83P%81%5B%83V%83%87%83%93%90%DD%92%E8.html
http://www.limy.org/program/db/mysql/use_replication.html

コメント

タイトルとURLをコピーしました