zoukankan      html  css  js  c++  java
  • 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:ProgramDataMySqlMySql Server 5.6my.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会得到如下结果:

    image

    104会得到如下结果:

    image

    图中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 StatusG;

    image

    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 StatusG;

    image

    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上

    image

    9.3 在103上插入记录

    mysql> insert into person values(2,’jensen’);

    9.4 在104上验证结果

    mysql> select * from person;

    image

    10. 对于自增ID列,两台Server同步时会因为值一样而造成冲突。解决方案:利用mysql的auto_increment_increment和auto_increment_offset来限定每台server生成的ID限定在一定范围内(如:104生成奇数ID,103生成偶数ID)

  • 相关阅读:
    RHEL 6.3 详细安装教程
    如何利用sendmail发送外部邮件?
    阿里云API网关(14)流控策略
    阿里云API网关(13)请求身份识别:客户端请求签名和服务网关请求签名
    OpenID Connect 是什么?
    OpenID Connect + OAuth2.0
    OAuth是什么?
    OpendID是什么?
    【华为无线路由器】连接【广电光纤入户设备】宽带上网
    windows7.0旗舰版安装后控制面板自带的Microsoft程序
  • 原文地址:https://www.cnblogs.com/Code-life/p/3813896.html
Copyright © 2011-2022 走看看