mysql主從備份在不停機的情況下新建slave從機。
192.168.1.207爲主機A
192.168.1.208爲從機B
主機A運行了一段時間,現在要新建從機B,在不停止A的情況下將A的數據導入B,並且建立AB的主從互備,
1,編輯A的配置文件
在mysqld下面加入
server-id=1
binlog-format = mixed
log-bin=mysql-bin
datadir=/var/lib/mysql
innodb_flush_log_at_trx_commit=1
sync_binlog=1
2,重啓A機器的mysql
3,在A機器上運行下面的語句:在B機器上建Slave用戶
4,備份數據庫
[root@localhost ~]# mysqldump --skip-lock-tables --single-transaction--flush-logs --hex-blob --master-data=2 -uroot -p123456 pqss_ceshi >~/dump.sql
5,檢查備份數據的MASTER_LOG_FILE and MASTER_LOG_POS.
6,將備份數據庫壓縮傳遞到208上
7,此時在207上的數據庫pqss_ceshi中新建一個表test1.(用於測試主從備份是否完成)。
8,修改208的配置,添加紅框中的配置:
9,將207上備份的數據庫還原到208上:
10,保存後重啓208的mysql。接着在208上執行下面的sql(通第五步中的數據保持一致):
CHANGE MASTER TOMASTER_HOST='192.168.1.207',MASTER_USER='repl4',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000004', MASTER_LOG_POS=106;
如果報錯就先執行下面的sql初始化208mysql的master:
reset slave;
10,啓動208的slave;
start slave
11,查看208的數據庫,發現pqss_ceshi中有新建的表test;接着在207的pqss _ceshi的表中插入數據,發現208的pqss_ceshi中也添加了數據;
11,到現在爲止,在不停機的情況下新建slave從機完成。