一、双主复制的配置
1. 先再生成一个mysql服务。
2. 双主的配置步骤参考这里。
但在执行 change master 时,发生了一个错误:
ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in the MySQL error log
日志信息为:
130517 9:18:11 [ERROR] Could not find target log during relay log initialization
130517 9:19:43 [ERROR] Failed to open the relay log '.\LENOVO-DA26F535-relay-bin.000001' (relay_log_pos 4)
通过reset slave解决,参考这里。
3. 搭建完毕后,进行双主a、b的测试,二者可以实现复制。
注意这里有个自增列的同步问题,这里有一个不错的解决方案:http://www.cnblogs.com/zhongweiv/archive/2013/02/01/MySQL_Replication_Circular.html
二、双主+从配置
因为以前b节点作为master时,带有两个slave。当a、b双主配置完毕后,启动b原来带的两个slave。此时发现:
(1)b节点与这两个slave工作正常。
(2)a、b节点双主工作正常
(3)a节点的变化复制到b节点后,无法再从b节点复制到两个slave!
原来是少设置了参数log_slave_updates=1(参考这里)。导致a传递到b的relay log无法再次生成bin log。
两个主节点都设置上这个参数,重启后即可实现级联复制。
附:my.ini中[mysql]的相关配置如下:
[mysqld]
# master config | yuechaotian
server-id=3309
log-bin=mysql-bin
log-bin-index=mysql-bin.index
binlog-do-db=test
relay-log=relay-bin
relay-log-index=relay-bin-index
replicate-do-db=test
log_slave_updates=1
……
注意:如果是在生产环境中,还需要设置两个主节点的自增列一个为奇数,一个为偶数,以避免冲突。