对于小型的数据库,我们可以直接使用mysqldump全库导出导入来创建从库。


试验环境:

  CentOS6.8 x86_64

  MySQL5.6.34 社区rpm版

  主库:node0 192.168.2.10 

  从库:node1 192.168.2.11


5.6下GTID复制必须配的参数(主库和从库都要加上这3行参数):

  gtid-mode=ON

  enforce_gtid_consistency = ON

  log_slave_updates=ON


step1、在主库导出并scp传输到node1:

mysqldump -uroot -pwww.Mwbyd91@ -A -q --single-transaction --master-data=2 > /root/all.sql

scp /root/all.sql node1:/root/


step2、在node1上恢复进去:

node1新安装的没有密码,执行mysql即可登录

source /root/all.sql;


step3、在node1上启动复制:

CHANGE MASTER TO MASTER_HOST='192.168.2.10', 

 MASTER_USER='rpl', 

 MASTER_PASSWORD='rpl', 

 MASTER_PORT=3306, 

 MASTER_AUTO_POSITION=1;


start slave;

show slave status\G



# 说明:

mysqldump这种方式的导入不需要像innobackup那样执行set global gtid_purged='xxxxx'; 这类的操作。因为在mysqldump导出的sql里面有自动设置的地方,如下图是导出的all.sql的部分截图:

wKioL1kIASGDEYXJAAB3cQ3YHXo778.png