日期:2014-05-16  浏览次数:20809 次

mysql5.5 数据双向同步的配置

两台机器的IP地址分别为:

?

A:192.168.0.101

B:192.168.0.102

?

step 1:修改A机器上mysql的配置文件 my.ini,在【mysqld】中加入如下配置

server-id=1

log-bin=E:/mysql/mysqlback

binlog-do-db=backup_db

max-binlog-size=104857600

?

replicate-do-db=backup_db

?

同时在mysql的命令窗口执行以下命令:

mysql> change master to master_host='192.168.0.102', master_user='backup', master_password='backup';

Note:mysql从5.5开始已经不支持在配置文件中通过设置?master-host= '' 来指定master 了,只能通过命令的方式来指定master

的IP地址,以及端口、连接的用户名和密码。

?

顺便执行以下命令,因为A机器也是B机器的Master,通过以下命令允许B机器接入进行数据的复制。

mysql> GRANT REPLICATION SLAVE ON *.* TO 'backup'@'192.168.0.102' IDENTIFIED BY?'backup';

?

step 2:修改B机器上mysql的配置文件 my.ini,在【mysqld】中加入step1中相同的配置:

server-id=2

log-bin=E:/mysql/mysqlback

binlog-do-db=backup_db

max-binlog-size=104857600

?

replicate-do-db=backup_db

?

同时在mysql的命令窗口执行以下命令:

mysql> change master to master_host='192.168.0.101', master_user='backup', master_password='backup';

?

顺便执行以下命令,因为B机器也是A机器的Master,通过以下命令允许B机器接入进行数据的复制。

mysql> GRANT REPLICATION SLAVE ON *.* TO 'backup'@'192.168.0.101' IDENTIFIED BY?'backup';

?

最后在两台机器上分别执行 ?mysql> START SLAVE; 来启动slave.

?

?

如果想查看mysql启动时的日志,可以在my.ini中加入下面的配置:

log-error=E:\mysql\error.log

?

解决自增主键冲突的办法:

A机器上配置:auto_increment_offset = 1 auto_increment_increment = 2

B机器上配置:auto_increment_offset = 2 auto_increment_increment = 2

?

如果备份的机器超过两台,可以按需调整上面参数 :)

?