首页 > 代码库 > Windows下搭建MySql Master-Master Replication
Windows下搭建MySql Master-Master Replication
1.首先下载最新版的MySql Server (http://dev.mysql.com/downloads/windows/installer/)
2.安装MySql Server到两台机器上
MySql 1: 192.168.0.104 (以下简称104)
MySql 2: 192.168.0.103 (以下简称103)
3. 配置Mysql Server启动Binary Logging.
在104的my.ini文件(一般在C:\ProgramData\MySql\MySql Server 5.6\my.ini)中添加如下配置信息
[mysqld]
log-bin=mysql-bin
server-id=1
103的my.ini文件中添加如下配置信息
[mysqld]
log-bin=mysql-bin
server-id=2
4.重启MySql
5.为Replication创建User,并赋予权限
mysql> CREATE USER ‘repl‘ @‘%‘ identified by ‘repl‘;
mysql> GRANT REPLICATION SLAVE ON *.* TO ‘repl‘@‘%‘;
6. 查看两台Mysql Server当前bin log的位置(因为我们只需要同步两个server从当前状态之后的操作)
6.1 分别在两台机器上执行如下命令:
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
103会得到如下结果:
104会得到如下结果:
图中File表示当前的binary log文件名,Position是表示Binary log文件的当前位置,呆会replication应该是从这个位置开始。
7. 释放Lock
在两台机器上执行如下命令:Unlock Tables.让两台MySql可以正常进行数据库操作
8,设置Slave Replication.
8.1 启动104上的slave replication.
8.1.1 执行 Stop Slave
8.1.2 执行如下命令:
CHANGE MASTER TO MASTER_HOST=‘192.168.0.103‘, MASTER_USER=‘repl‘, MASTER_PASSWORD=‘repl‘,MASTER_LOG_FILE=‘mysql-bin.000001‘, MASTER_LOG_POS=411;
8.1.3 执行Start Slave
8.1.4 查看slave的状态,执行Show Slave Status\G;
8.2 启动103上的slave replication.
8.2.1 执行 Stop Slave
8.2.2 执行如下命令:
CHANGE MASTER TO MASTER_HOST=‘192.168.0.104‘, MASTER_USER=‘repl‘, MASTER_PASSWORD=‘repl‘,MASTER_LOG_FILE=‘mysql-bin.000001‘, MASTER_LOG_POS=411;
8.2.3 执行Start Slave
8.2.4 查看slave的状态,执行Show Slave Status\G;
9.测试replication效果
9.1 在104上执行:
mysql> create database repltest;
mysql> use repltest;
mysql> create table person(id int,name varchar(255));
mysql> insert into person values(1,’jensen’);
9.2在103上执行:
mysql> use repltest;
mysql> select * from person; 验证在104上插入的记录已经同步现103上
9.3 在103上插入记录
mysql> insert into person values(2,’jensen’);
9.4 在104上验证结果
mysql> select * from person;
10. 对于自增ID列,两台Server同步时会因为值一样而造成冲突。解决方案:利用mysql的auto_increment_increment和auto_increment_offset来限定每台server生成的ID限定在一定范围内(如:104生成奇数ID,103生成偶数ID)