mysql双主同步
A机:192.168.0.244 已安装mysql5.7
B机:192.168.0.245 已安装mysql5.7
操作系统:centos 7
两台主机都关闭防火墙
systemctl stop firewalld
关闭selinux
vi /etc/sysconfig/selinux
修改SELINUX=disabled
查看selinux
命令:getenforce
需要显示为:disabled
配置主服务器
编辑B机mysql的my.cnf
添加:server-id=1
log-bin=mysql-bin
binlog-do-db = charge_data (指定同步的数据库,如果是多库就新增一行 binlog-do-db = XX 需要同步几个库就对应新增几行 )
binlog-ignore-db = mysql
A机配置
修改my.cnf
添加:server-id=2
log-bin=mysql-bin
binlog-do-db = charge_data (指定同步的数据库,同上)
binlog-ignore-db = mysql
从B机全备一份charge_data 库,到A机进行恢复
在A.B机mysql里创建一个同步使用的用户
create user 'tongbu'@'%' identified by 'tongbu';
授权:
grant all on *.* to 'tongbu'@'%';
然后再AB机上测试新建用户是否可以互相登录
A机:mysql -utongbu -ptongbu -h192.168.0.245
B机:mysql -utongbu -ptongbu -h192.168.0.244
然后重启MySQL服务 service mysqld restart
最后开始配置主从
先设置B主A从
B机上查看二进制日志名和偏移量值
show master status\G
会得到对应的
file:
position:
2个值
然后去A机上配置从连主配置
mysql> stop slave;
mysql> change master to
-> master_host='192.168.0.245',
-> master_user='tongbu',
-> master_password='tongbu',
-> master_log_file='XX', #二进制日志文件名
-> master_log_pos=XXX; #偏移量
mysql> start slave;
然后输入:
show slave status\G
得到Slave_IO_Running和Slave_SQL_Running的值是否为Yes
如果遇到Slave_SQL_Running: no
就跟着看下面的报错提示
然后处理报错 处理完报错后执行命令
stop slave;
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
start slave;
show slave status\G
同步失败,报错1236
master库执行:flush logs;
从库执行:
stop slave;
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000004',MASTER_LOG_POS=154 (这个是mysql-bin和MASTER_LOG_pos是上面fllush logs 获得的 )
start slave;
show slave status\G
再设置A主B从
A机mysql输入
show master status\G
会得到对应的
file:
position:
2个值
然后去B机上配置从连主配置
mysql> stop slave;
mysql> change master to
-> master_host='192.168.0.244',
-> master_user='tongbu',
-> master_password='tongbu',
-> master_log_file='XX',
-> master_log_pos=XXX;
mysql> start slave;
然后输入:
show slave status\G
得到Slave_IO_Running和Slave_SQL_Running的值是否为Yes
以上正常操作完成 不报错的话 就已经可以主主同步了
本文来自博客园,作者:有鹏自远方来,转载请注明原文链接:https://www.cnblogs.com/2019peng/p/13558076.html

浙公网安备 33010602011771号