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. Java并发编程:Lock(上)

    在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问.本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方 ...

  2. mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别

    <?php $link=mysql_connect('localhost','root',”); mysql_select_db('abc',$link); $sql = “select * f ...

  3. Payment Terms 收付款条件和分期付款设置

    SAP Payment Terms 中文翻译为收付款条件,他的用途是应收和应付的财务凭证中账期的管理,顾名思义即手动录入和自动生成的财务文档多少天内冲销处理则为正常,否则为超期应收应付文档,它包含的内 ...

  4. 活动 Activity 四种加载模式

    singleTop要求如果创建intent的时候栈顶已经有要创建的Activity的实例,则将intent发送给该实例,而不发送给新的实例.(注意是栈顶,不在栈顶照样创建新实例!) singleTas ...

  5. Django 学习笔记之七 实现分页

    接着上篇,在上篇的基础上实现网页数据分页显示 1.打开views.py,编辑如下 #coding:utf-8from django.shortcuts import render,get_object ...

  6. Spring实现AOP的4种方式(转)

    转自:http://blog.csdn.net/udbnny/article/details/5870076 Spring实现AOP的4种方式 先了解AOP的相关术语:1.通知(Advice):通知定 ...

  7. uva 757

    贪心  优先队列 #include <cstdio> #include <cstdlib> #include <cmath> #include <map> ...

  8. sqlplus 远程oracle

    sqlplus dbuser/dbpassword@192.168.0.2/mydb sqlplus try/try@302-4 302-4为本地oralce  net manager 配置的网络名

  9. HDOJ 1856 More is better

    转自:wutianqi http://www.wutianqi.com/?p=1069 tag:并查集 #include <iostream> using namespace std; # ...

  10. hdu 4412 Sky Soldiers DP

    动态规划,主要是用单调性求区间的最小期望. 代码如下: #include<iostream> #include<stdio.h> #include<algorithm&g ...