mysql でレプリケーション設定
■流れ
[master]ポジション取得→マスターのロック→ダンプ→アンロック
[slave]CHANGE MASTER TO〜→start slave
[確認]slaveにて
show slave status
→Slave_IO_Running,Slave_SQL_Runningが'Yes'になっていることを確認
※初期設定が必要なとき
======================================================
以下二つのディレクトリにmasterとslaveを作成
$/usr/local/mysql $/usr/local/mysql-slave
my.cnfファイルを /usr/local/mysql配下に設定
もし初めてMySQLをインストールしたなら、データベースを初期化します。
(バージョンアップのための再インストール時には、絶対にしないこと。)
$rm -rf data $./scripts/mysql_install_db $chown -R root:wheel mysql $chown -R mysql:mysql data $ps -ef | grep mysql
=======================================================
■スレーブに接続
$/usr/local/mysql/bin/mysql -S /tmp/mysql-slave1.sock
■マスターに接続
/usr/local/mysql/bin/mysql -S /tmp/mysql.sock
権限の付与
GRANT REPLICATION SLAVE ON *.* TO repl@'localhost' IDENTIFIED BY 'replication';
ロック(mysql)
FLUSH TABLES WITH READ LOCK;
ポジション獲得(mysql)
show master status;
アンロッック(mysql)
UNLOCK TABLES;
レプリケーションの作成
CHANGE MASTER TO MASTER_HOST='XXX.XXX.XX.XX', MASTER_USER='repl', MASTER_PASSWORD='replication', MASTER_LOG_FILE='mysql-bin.XXXXXXX', MASTER_LOG_POS=XXXXXXXXXX;
参考サイト
http://dev.mysql.com/doc/refman/4.1/ja/replication-howto.html