既にレプリケーション環境下にある状態で、後からスレーブを増やす方法
まず最初にレプリケーションするためにマスタに接続するアカウントを作成します。
下記の作業をマスタでmysqlにログインして行います。
GRANT REPLICTION SLAVE,REPLICATION CLIENT ON *.* TO replication@'新しいサーバのIP' IDENTIFIED BY 'パスワード';
次に新しく追加するスレーブの設定を変更するためにmy.confの下記の項目を修正し、mysqlを再起動します。
log_bin = mysql-bin server_id = 今まで設定されていない数値 relay_log = mysql-relay-bin log_slave_updates = 1 read_only = 1
次に既存スレーブから新スレーブに今までのデータをコピーするために以下の作業を行います。
mysqlにログインし
STOP SLAVE
でスレーブを止める。
SHOW SLAVE STATUS\G
でスレーブが読み取ったバイナリログの現在位置を取得し下記の項目を覚えてmysqlからログオフする。
Master_Log_File Read_Master_Log_Pos
スレーブのデータディレクトリを圧縮する。
新しいスレーブにコピーする。
START SLAVE
でスレーブを再開する。
最後に新スレーブでレプリケーションを開始するための作業を行います。
転送された圧縮ファイルをデータディレクトリに展開する
mysqlにログインする。
CHANGE MASTER TO MASTER_HOST='マスタのIP', MASTER_USER='replication', MASTER_PASSWORD='パスワード', MASTER_LOG_FILE=覚えておいたMaster_Log_Fileの値, MASTER_LOG_POS=覚えておいたRead_Master_Log_Posの値;
を実行する。
START SLAVE
を実行してスレーブとしての動作を開始する。
ステータスを見て正しく動作していることが確認できれば以上で作業は終了です。