流程:在主机上面打开binlog和设置server-id,打开gtid,然后授权一个账号的slave,client权限,在刷新授权表,然后将数据库数据备份下来,将备份数据拷贝到备机上
在备机,首先测试到到主机IO 是否通,再将备份数据导入,在通过change master设置主机的授权账号及密码,最后启动slave
主机1操作
#打开logbin
log-bin
#设置serverid
server-id=142
#打开gtid功能
gtid_mode=on
#强制数据一致性
enforce_gtid_consistency=1
授权:mysql> grant replication slave,replication client on . to ‘rep’@‘192.168.243.%’ identified by ‘Gy@123456’;
刷新授权:mysql> flush privileges;
备份数据:mysqldump -p’Gy@123456’ –all-databases –single-transaction –master-data=1 –flush-logs>
date +%F
-mysql-all.sql
拷贝给备机:[root@Server2 ~]# scp 2019-04-25-mysql-all.sql root@192.168.243.140:/root
change master设置主机的授权账号及密码
change master to master_host=‘master2’,master_user=‘rep’,master_password=‘Gy@123456’ ,master_auto_position=1;
start slave; 启动slave
show slave status\\G; 查看是否正常Slave_IO_Running: Yes和Slave_SQL_Running: Yes是否正常,Slave_IO_Running: Connecting可能是防火墙启动或selinux启动,如果Slave_SQL_Running: No,解决办法:第一步:stop slave;第二步:SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;
第三步:start slave;
主机2操作:
#打开logbin
log-bin
#设置serverid
server-id=143
#打开gtid功能
gtid_mode=on
#强制数据一致性
enforce_gtid_consistency=1
1、测试到主机的I/O是否正常
mysql -hServer2(Server2主机的主机名) -urep(rep是主机的授权账号) -p’Gy@123456’(授权账号密码)
mysql> show grants; 查看授权
set sql_log_bin=0; 设置变量,恢复数据不记录binlog日志
source /root/2019-04-25-mysql-all.sql 恢复数据
change master设置主机的授权账号及密码
change master to master_host=‘master1’,master_user=‘rep’,master_password=‘Gy@123456’ ,master_auto_position=1;
start slave; 启动slave
show slave status\\G; 查看是否正常Slave_IO_Running: Yes和Slave_SQL_Running: Yes是否正常,如果Slave_SQL_Running: No,解决办法:第一步:stop slave;第二步:SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;
第三步:start slave;