zoukankan      html  css  js  c++  java
  • MySQL主主复制

    1 MySQL5.6 主主复制
    环境如下:
    CentOS6.4_64
    MySQL5.6
    master1:192.168.10.11
    master2:192.168.10.12
    1.1 配置 master1
    a. 修改 my.cnf 文件,增加如下内容:
    server-id=1 #数据库 ID 号
    log-bin=mysql-bin #启用二进制日志;
    binlog-do-db=baba1 #需要同步的数据库名,这里同步 baba1、baba2 两数据库
    binlog-do-db=baba2
    binlog-ignore-db=mysql #不同步的数据库名,如果不设置可以将其注释掉
    log-bin=/var/log/mysqlbin/bin_log #设定生成的 log 文件名,如果没有/var/log/mysqlbin 目录,
    则创建,并执行 chown -R mysql.mysql /var/log/mysqlbin
    log-slave-updates #把从库的写操作,记录到 binlog 中
    expire_logs_days=365 #日志文件过期天数,默认是 0,表示不过期
    auto-increment-increment=2 #设定为主服务器的数量,防止 auto_increment 字段重复
    auto-increment-offset=1 #自增长字段的初始值,在多台 master 环境下,不会出现自增
    长 ID 重复
    b. 添加一个复制帐号 backup
    [root@localhost ~]# mysql -uroot -p123456
    mysql>grant replication slave on *.* to backup@'%' identified by '123456';
    mysql>flush privileges;
    c. 在 master2 上测试是否能连接到 master1,记得把 3306 添加到 iptables 里
    [root@localhost ~]# mysql -ubackup -h 192.168.10.11 -p123456
    1.2 配置 master2
    a. 修改 my.cnf 文件,增加如下内容:
    server-id=2 #数据库 ID 号
    log-bin=mysql-bin #启用二进制日志;
    binlog-do-db=baba1 #需要同步的数据库名,这里同步 baba1、baba2 两数据库
    binlog-do-db=baba2
    binlog-ignore-db=mysql #不同步的数据库名,如果不设置可以将其注释掉
    log-bin=/var/log/mysqlbin/bin_log #设定生成的 log 文件名,如果没有/var/log/mysqlbin 目录,
    巴巴网(www.baba.io)为您提供图书、文档、源码、工具等资源的下载,是您最好的资源下载网。
    本系列文档,由巴巴网(www.baba.io)独家发行,如需最新版本,请访问 www.baba.io
    则创建,并执行 chown -R mysql.mysql /var/log/mysqlbin
    log-slave-updates #把从库的写操作,记录到 binlog 中
    expire_logs_days=365 #日志文件过期天数,默认是 0,表示不过期
    auto-increment-increment=2 #设定为主服务器的数量,防止 auto_increment 字段重复
    auto-increment-offset=2 #自增长字段的初始值,在多台 master 环境下,不会出现自增
    长 ID 重复
    b. 添加一个复制帐号 backup
    [root@localhost ~]# mysql -uroot -p123456
    mysql>grant replication slave on *.* to backup@'%' identified by '123456';
    mysql>flush privileges;
    c. 在 Master1 上测试是否能连接到 Master2,记得把 3306 添加到 iptables 里
    [root@localhost ~]# mysql -ubackup -h 192.168.10.12 -p123456
    1.3 设置 master-master 同步
    a. 重启 master1、master2 上的 MySQL
    [root@localhost ~]# service mysql restart
    b. 查看 master1 的状态
    [root@localhost ~]# mysql -uroot -p123456
    mysql> show master status;
    +----------------+----------+--------------+------------------+-------------------+
    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +----------------+----------+--------------+------------------+-------------------+
    | bin_log.000028 | 120 | baba1,baba2 | mysql | |
    +----------------+----------+--------------+------------------+-------------------+
    1 row in set (0.00 sec)
    c. 查看 master2 的状态
    [root@localhost ~]# mysql -uroot -p123456
    mysql> show master status;
    +----------------+----------+--------------+------------------+-------------------+
    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +----------------+----------+--------------+------------------+-------------------+
    | bin_log.000028 | 120 | baba1,baba2 | mysql | |
    +----------------+----------+--------------+------------------+-------------------+
    1 row in set (0.00 sec)
    c. 设置 master1 从 master2 同步数据
    mysql>CHANGE MASTER TO MASTER_HOST='192.168.10.12',MASTER_PORT=3306,
    巴巴网(www.baba.io)为您提供图书、文档、源码、工具等资源的下载,是您最好的资源下载网。
    本系列文档,由巴巴网(www.baba.io)独家发行,如需最新版本,请访问 www.baba.io
    MASTER_USER='backup',MASTER_PASSWORD='123456',MASTER_LOG_FILE='bin_log.00
    0028',MASTER_LOG_POS=120;
    mysql> start slave;
    #查询数据库的 slave 状态
    mysql> show slave statusG;
    #如果下面两个参数都是 Yes,则说明 master1 配置成功
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
    d. 设置 master2 从 master1 同步数据
    mysql>CHANGE MASTER TO MASTER_HOST='192.168.10.11',MASTER_PORT=3306,
    MASTER_USER='backup',MASTER_PASSWORD='123456',MASTER_LOG_FILE='bin_log.00
    0028',MASTER_LOG_POS=120;
    mysql> start slave;
    #查询数据库的 slave 状态
    mysql> show slave statusG;
    #如果下面两个参数都是 Yes,则说明 master1 配置成功
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
    1.4 测试主主复制
    a. 在 master1 上,执行如下操作:
    [root@localhost ~]# mysql -uroot -p123456
    mysql> create database baba1;
    mysql> use baba1;
    mysql> create table test(id int AUTO_INCREMENT,name varchar(20),PRIMARY KEY (`id`));
    mysql> insert into test(name)values('aaa');
    mysql> insert into test(name)values('bbb');
    mysql> insert into test(name)values('ccc');
    mysql> select * from test;
    +----+------+
    | id | name |
    +----+------+
    | 1 | aaa |
    | 3 | bbb |
    | 5 | ccc |
    +----+------+
    3 rows in set (0.00 sec)
    b. 在 master2 上,执行如下操作:
    巴巴网(www.baba.io)为您提供图书、文档、源码、工具等资源的下载,是您最好的资源下载网。
    本系列文档,由巴巴网(www.baba.io)独家发行,如需最新版本,请访问 www.baba.io
    [root@localhost ~]# mysql -uroot -p123456
    mysql> use baba1;
    mysql> select * from test;
    +----+------+
    | id | name |
    +----+------+
    | 1 | aaa |
    | 3 | bbb |
    | 5 | ccc |
    +----+------+
    3 rows in set (0.00 sec)
    mysql> insert into test(name)values('ddd');
    mysql> insert into test(name)values('eee');
    mysql> insert into test(name)values('fff');
    mysql> select * from test;
    +----+------+
    | id | name |
    +----+------+
    | 1 | aaa |
    | 3 | bbb |
    | 5 | ccc |
    | 6 | ddd |
    | 8 | eee |
    | 10 | fff |
    +----+------+
    6 rows in set (0.00 sec)
  • 相关阅读:
    android data binding jetpack I 环境配置 model-view 简单绑定
    java 直接内存
    Android内存管理机制
    使用老版本的java api提交hadoop作业
    通过java api提交自定义hadoop 作业
    hadoop错误总结
    linux下eclipse闪退和重装jdk的方法
    完全分布式安装hadoop
    hadoop伪分布式安装
    2014年度总结
  • 原文地址:https://www.cnblogs.com/liangml/p/5972564.html
Copyright © 2011-2022 走看看