MySQL Replication
MySQLでデータベースをレプリケーションさせてみる
my.cnfを設定 (レプリケーション元)
[mysqld]
log_bin = /var/log/mysql/mysql-bin.log
server-id = 1
上を追加しておく。ついでにMySQL上のレプリケーションを行うユーザーを作っておいた方が良い
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO repl@'%' IDENTIFIED BY 'pass';
あと
SHOW MASTER STATUS
を実行した結果のPositionとログファイル名は記憶しておく
my.cnfを設定 (レプリケーション先)
[mysqld]
server-id = 2
レプリケーション元の情報を設定 (レプリケーション先)
CHANGE MASTER TO
MASTER_HOST='localhost',
MASTER_PORT=13306,
MASTER_USER='repl',
MASTER_PASSWORD='pass',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=106;
MASTERLOGFILEとMASTERLOGPOSはレプリケーション元側で取得したスレーブログ情報を指定する
SSHトンネリング側の設定 (レプリケーション先)
んでマスターサーバー側のMySQLポートのファイアウォール設定を変えるのはまずいので、とりあえずSSHトンネリングを設定する
ssh -f -N -N 13306:192.168.3.1:3306 kinjouj@192.168.3.1
レプリケーション元でSSHサーバーを起動しておき、このSSHポートフォワーディングを利用する事でマスターサーバーのSSHを利用してレプリケーションを実行する事ができるようになる