一、注意点
1、接上一篇博客,在搭建好主从的基础上,搭建MySQL的双主架构,也就是让从库的数据更改也同步到主库,这种情况2台数据库的角色就互换了,互为主备。
二、搭建步骤
1、在从节点上创建用于同步数据的用户
命令:grant replication slave on *.* to 'repl_user2'@'192.168.232.35' identified by '654321';
为了区分和主节点上repl_user1的区别,创建不同的密码
2、开启从节点的BinaryLog
read-only=0
binlog-do-db=test
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
auto-increment-increment=10
auto-increment-offset=2
配置完后,重启从节点的MySQL服务
3、查看从服务的master日志状态(现在的从节点其实充当的是主节点的角色)
命令:show master status\G
4、登录主节点,修改my.cnf配置,开启中继
replicate-do-db=test
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
replicate-ignore-db=sys
relay_log=mysql-relay-bin
log-slave-updates = ON
5、在主节点上启用同步
mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.232.36',
-> MASTER_USER='repl_user2',
-> MASTER_PASSWORD='654321',
-> MASTER_LOG_FILE='mysql-bin.000005',
-> MASTER_LOG_POS=154;
6、重启主节点的MySQL服务
命令: service mysql restart
7、查看主节点的slave状态
命令:show slave status\G
注:如果启动后发现2个线程的状态为NO时,参考下面三种的解决方案
Slave_IO_Running: No
Slave_SQL_Running: No
8、测试数据是否同步
(1)在从节点新增数据
(2)主节点上查看
注: 可以看到在从节点新增的数据,主节点已经同步过来了,并且看到第一条新增的数据的id是22,第二条是32,这样就保证了2边的id不冲突了。
三、遇到的错误
1、查看主节点的slave状态发现2个线程的状态为NO
(1)错误截图
(2)查看错误日志
这个错误是我们在配置A的中继文件时改了中继文件的名字,但是mysql没有同步导致的。
(3)解决办法
停掉MySQL服务,找到下面的三个文件,删除掉,重启服务器
relay-log.info
jfdb-relay-bin.000001
jfdb-relay-bin.index
注:jfdb是对应的机器名
注:如果重启后这2个线程还是NO的话,重新配置一下主的信息,重启mysql服务
***************************************************
如下是个人开发系统,欢迎大家体验,纯属个人爱好,想一块玩的,私信。
易本浪账:www.jialany.com
***************************************************