两台机器的IP地址分别为:
A:192.168.0.101
B:192.168.0.102
step 1:修改A机器上mysql的配置文件 my.ini,在中加入如下配置
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,在中加入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
如果备份的机器超过两台,可以按需调整上面参数 :)