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从机完成。