MySQLのレプリケーション設定

1.マスターのスナップをスレーブ側に準備する。

MySQLのファイル分散」の手順と同じように、マスターからエクスポートしたdumpファイルをスレーブ側にインポートする。

2.マスターの設定

my.cnfに下記を追加。

server-id = 100 <- 数字は他のMySQLサーバと重ならない任意の数字

スレーブサーバからレプリケーション可能なユーザの設定をする。

mysql> grant replication slave on *.* to bookmark@192.168.1.50 identified by 'パスワードを指定';
Query OK, 0 rows affected (0.01 sec)

マスター側のMySQLサーバを起動

3.スレーブの設定

my.cnfに下記を追加

server-id = 200 <- 数字は他のMySQLサーバと重ならない任意の数字
master-host = 192.168.1.40
master-port = 13306 <- MySQLのサーバ名
master-user = bookmark <- スレーブから接続するユーザ(マスタ側で指定したユーザ)
master-password = <- スレーブから接続するユーザ用に指定したパスワード
replicate-do-db = SandBox <- レプリケートを行うデータベース

スレーブ側のMySQLサーバを起動する。
ログでエラー等がでていないか確認。

私の場合は下記のようなログが出力されて、レプリケーションが開始されていることを確認。

080218 16:00:29 mysqld started
080218 16:00:29 InnoDB: Started; log sequence number 0 60873317
080218 16:00:29 [Note] /usr/local/mysql/libexec/mysqld: ready for connections.
Version: '5.0.24-log' socket: '/tmp/mysql.sock' port: 13306 Source distribution
080218 16:00:29 [Note] Slave SQL thread initialized, starting replication in log 'binlog.000031' at position 351, relay log './c2-relay-bin.000059' position: 232
080218 16:00:29 [Note] Slave I/O thread: connected to master 'bookmark@192.168.1.40:13306', replication started in log 'binlog.000031' at position 351

4.レプリケーションの確認

マスター側のデータベースに変更を行い、スレーブ側に問題なく反映されていることを確認

MySQLによる最速RDBMS構築ガイドMySQLによる最速RDBMS構築ガイド
(2005/09/17)
鶴長 鎮一、MCEA DB研究会 他

商品詳細を見る

MySQL逆引きクイックリファレンス―MySQL 4.0/4.1/5.0対応MySQL逆引きクイックリファレンス―MySQL 4.0/4.1/5.0対応
(2006/12)
山田 祥寛

商品詳細を見る