[z]如何在一台windows主机上搭建mysql主-主-从复制

一、双主复制的配置

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
……

注意:如果是在生产环境中,还需要设置两个主节点的自增列一个为奇数,一个为偶数,以避免冲突。

auto_increment_increment=2      auto_increment_increment=2
auto_increment_offset=1            auto_increment_offset=2
 
posted @ 2013-05-17 10:39  醇酒醉影  阅读(925)  评论(0编辑  收藏  举报