主要介紹兩個(gè)場(chǎng)景:
- 生產(chǎn)環(huán)境已經(jīng)有正在運(yùn)行的數(shù)據(jù)庫(kù)擅威。
- 生產(chǎn)環(huán)境已經(jīng)有正常運(yùn)行的主從數(shù)據(jù)庫(kù),想再添加一臺(tái)從數(shù)據(jù)庫(kù)。
本文說(shuō)一下第二種情況衣洁。
假設(shè)線上正在運(yùn)行的主數(shù)據(jù)庫(kù)服務(wù)器的地址為192.168.1.2,從數(shù)據(jù)庫(kù)服務(wù)器地址為192.168.1.3抖仅,而你想新添加的從數(shù)據(jù)庫(kù)地址為192.168.1.4
- 首先在主數(shù)據(jù)庫(kù)上為要添加從服務(wù)器地址創(chuàng)建一個(gè)用于復(fù)制的用戶坊夫。
$ ssh root@192.168.1.2
$ mysql -u root -p
mysql> grant REPLICATION SLAVE on *.* to 'repl'@'192.168.1.4' identified by 'repl_pass';
mysql> flush privileges;
- 然后再將已有的從服務(wù)器的數(shù)據(jù)目錄打包并復(fù)制到新添加的從服務(wù)器
$ ssh root@192.168.1.3
$ service mysql stop;
$ tar -zcvf mysql.tar.gz /var/lib/mysql
$ scp /var/lib/mysql.tar.gz root@192.168.1.4:~
$ service mysql start;
$ mysql -u root -p
mysql> start slave;
mysql> exit;
- 登錄到新要添加的從服務(wù)器,將上一步打包的文件解壓到/var/lib,然后修改數(shù)據(jù)庫(kù)配置撤卢,重啟數(shù)據(jù)庫(kù)环凿,最后再開(kāi)啟復(fù)制。
$ ssh root@192.168.1.4
$ cd /var/lib
$ tar -zxvf ~/mysql.tar.gz
$ vim /etc/mysq/mysql.conf.d/mysqld.cnf
#添加 server-id=3 放吩,不能和主數(shù)據(jù)庫(kù)和其它從數(shù)據(jù)庫(kù)的server-id重復(fù)
$ service mysql restart
$ mysql -u root -p
mysql> show slave status;#查看bin_log正在執(zhí)行的文件及坐標(biāo)
mysql> reset slave;
mysql> change master to
-> MASTER_HOST='192.168.1.2',
-> MASTER_USER='repl_user',
-> MASTER_PASSWORD='repl_pass',
-> MASTER_LOG_FILE='recorded_log_file_name',
-> MASTER_LOG_POS=recorded_log_position;
mysql> start slave;
- 檢查該從數(shù)據(jù)庫(kù)的運(yùn)行狀態(tài)
show slave status;