スレーブサーバーを複製する方法
目的
スレーブサーバーを複製する🐤
環境
$ mysql --version
mysql Ver 14.14 Distrib 5.6.27, for debian-linux-gnu (x86_64) using EditLine wrapper
$ cat /etc/issue
Ubuntu 14.04.3 LTS \n \l
新スレーブサーバーでマスターサーバーに接続できるか確認
mysql > mysql -hNOWSLAVEIP -urepluser -p
マスターサーバーに接続できなかった場合、iptablesやufwを確認、変更して接続できるようにする ※ちょっとでも間違えるとアクセスできなるくなるため慎重に
現スレーブサーバーで stop slave;
$ mysql -u root --socket /run/3307/mysqld.sock -p
mysql > show slave status\G
mysql > stop slave;
mysql > show slave status\G
Relay_Master_Log_FileとExec_Master_Log_Posの場所を記録
mysql > show slave status\G
Relay_Master_Log_File
Exec_Master_Log_Pos
現スレーブサーバーでmysqldumpする
$ mysqldump -u root --socket /run/3307/mysqld.sock -p --all-databases --single-transaction | gzip > /home/technuma/mysql-3307.sql.gz
現スレーブサーバーでスレーブ開始
mysql > start slave;
現スレーブサーバーで転送開始
$ sudo -u technuma scp -P 19868 mysql-3307.sql.gz technuma@NEWSLAVEIP:/home/technuma/
新スレーブサーバーで
$ gunzip mysql-3307.sql.gz
MySQL再起動
$ mysqladmin -u root -S /var/lib/mysql-3307/mysqld.sock shutdown
$ mysqld_safe --defaults-file=/var/lib/mysql/mysql-3307/my.cnf --skip-slave-start &
新スレーブサーバーでdumpファイルをインポートする
$ mysql -u root -S /var/lib/mysql-3307/mysqld.sock -p < /home/technuma/mysql-3307.sql
新スレーブサーバーでmysql再起動
$ mysqladmin -u root -S /var/lib/mysql-3307/mysqld.sock shutdown
$ mysqld_safe --defaults-file=/var/lib/mysql/mysql-3307/my.cnf --skip-slave-start &
新スレーブサーバーでログイン
$ mysql -u root -S /var/lib/mysql-3307/mysqld.sock -p
新スレーブサーバーでslaveが動いてないか確認
show slave status\G
新スレーブサーバーで
mysql > CHANGE MASTER TO
MASTER_HOST='NOWSLAVEIP',
MASTER_USER='repluser',
MASTER_PASSWORD='REPLUSERPASS',
MASTER_PORT=3306,
MASTER_LOG_FILE='【記録したRelay_Master_Log_File】',
MASTER_LOG_POS=【記録したExec_Master_Log_Pos】;
新スレーブサーバーでスレーブ開始
mysql > start slave;
新スレーブサーバーでスレーブが動作していることを確認
mysql > show slave status\G