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)

Windows下搭建MySql Master-Master Replication的更多相关文章

  1. Windows下搭建MySQL Master Slave[转]

    Windows下搭建MySQL Master Slave 一.背景 服务器上放了很多MySQL数据库,为了安全,现在需要做Master/Slave方案,因为操作系统是Window的,所以没有办法使用k ...

  2. Windows下搭建MySQL Master Slave

    一.背景 服务器上放了很多MySQL数据库,为了安全,现在需要做Master/Slave方案,因为操作系统是Window的,所以没有办法使用keepalived这个HA工具,但是我们可以接受人工进行切 ...

  3. Windows下搭建Mysql集群

    Mysql集群的基本架构如下: 基本原理参考:[转]MySQL Cluster (集群)基本原理 这里采用最小配置,用两台机器来分别部署一个management 节点,2个data node, 2个s ...

  4. linux下搭建mysql主从

    在master上创建repl账户,用于复制. grant replication slave on *.* to 'repl'@'%' identified by 'P@$$W0rd'; flush ...

  5. Windows下搭建PHP环境:Apache+PHP+MySQL

    本文简单记录一下Windows下搭建PHP环境的过程,一些细节可以参照本文参考资料,此文不再赘述 准备工作: Windows下手工搭建PHP环境需要先下载相应的软件,需要注意的是Apache与PHP的 ...

  6. windows下搭建apache+php+mysql

    在windows下,apache和mysql都有自动化安装的程序,本篇则侧重从apache和php版本选择,php线程安全,apache和mysql安装启动服务,工作环境配置这几个方面来阐述windo ...

  7. windows下搭建Apache+Mysql+PHP开发环境

    原文:windows下搭建Apache+Mysql+PHP开发环境 要求 必备知识 熟悉基本编程环境搭建. 运行环境 windows 7(64位); Apache2.2;MySQL Server 5. ...

  8. react-native —— 在Windows下搭建React Native Android开发环境

    在Windows下搭建React Native Android开发环境 前段时间在开发者头条收藏了 @天地之灵_邓鋆 分享的<在Windows下搭建React Native Android开发环 ...

  9. 本地windows下搭建git的本地服务器

    本地windows下搭建git的本地服务器 准备工作: 本地安装java环境,配置环境变量(略) 下载gitblit文件,百度一大堆 开始第一步: 减压gitblit压缩包到某个目录下,比如我在:H: ...

随机推荐

  1. MVC学习系列——ActionResult扩展

    首先,MVC扩展性非常强. 我从ActionResult扩展入手,因为我们知道微软ActionResult和其子类,有时候并不能满足所有返回值. 比如:我需要返回XML. 因此,现在我扩展XMLRes ...

  2. Jboss wildfly add JDBC driver

    Jboss wildfly  添加 JDBC driver 我这里使用的是 wildfly-8.0.0.Final 第一步: 首先在modules里面添加mysql的驱动包 例如:modules\sy ...

  3. margin-top相对谁的问题

    根据规范,一个盒子如果没有上补白(padding-top)和上边框(border-top),那么这个盒子的上边距会和其内部文档流中的第一个子元素的上边距重叠.意思便是:如果你只想margin相对于父标 ...

  4. cocos2dx中的实现地图卷动的两种方式

    在游戏当中,实现地图卷动是最基本的功能,具体的实现的方法,大致有两类: 方法一:加载两张图片,轮流显示, 优点: 1.无论是地图上下卷动,还是左右卷动都可以 2.支持各种图片,(png,jpg...) ...

  5. MVC下用C#实现Excel导出

    Aspx页面脚本: function exportxls() { window.open("/Common/HomeExport?startdate=" + $("#hi ...

  6. mysql数据库连接池 手动编写

    源码来源于http://www.toutiao.com/a6350448676050174209/,留存以供以后参考学习 先上一张项目托普图 然后分别列出各个文件的源码: MyPool.java(就是 ...

  7. [nowCoder] 两个不等长数组求第K大数

    给定两个有序数组arr1和arr2,在给定一个整数k,返回两个数组的所有数中第K小的数.例如:arr1 = {1,2,3,4,5};arr2 = {3,4,5};K = 1;因为1为所有数中最小的,所 ...

  8. PHP之cookie相关实例教程与经典代码

    ·php 中cookie和session的用法比较 ·php会话控制cookie与Session会话处理 ·php中利用cookie实现购物车实例 ·php中cookie与session应用学习笔记 ...

  9. 在windows下用FTP命令上传文件到Linux

    在桌面新建个文件夹,命名成MySQL.rpm.把需要上传的文件放到这个文件夹里.打开cmd窗口,开始用下面命令操作: C:\Users\huyadi>cd C:\Users\huyadi\Des ...

  10. vc6命令行编译工程方法

    查vc++ 6.0 的 msdn找到下面的命令: msdev FileName [/MAKE "ProjectName – ConfigName | ALL"] [/REBUILD ...