zoukankan      html  css  js  c++  java
  • 【Mysql】双主双从同步配置

      本例介绍Mysql双主双从同步配置,一主一从参考:【Mysql】主从同步配置

    双主双从架构

      

    搭建步骤

      1、环境准备,本例准备了4台服务器

        mysql版本:5.8

        系统:CentOS 7.4

        master1服务器:  172.17.0.2

        slave1服务器:  172.17.0.3

        master2服务器:  172.17.0.4

        slave2服务器:     172.17.0.5

      2、在4台服务器上分支安装mysql实例,参考:【Linux】CentOS 7.4 安装 MySQL 8.0.12 解压版

      3、修改4个mysql的配置

        master1的配置(/etc/my.cnf)如下:

     1 #主服务器唯一ID
     2 server-id=1
     3 #启用二进制日志
     4 log-bin=mysql-bin
     5 # 设置不要复制的数据库(可设置多个)
     6 binlog-ignore-db=mysql
     7 binlog-ignore-db=information_schema
     8 #设置需要复制的数据库
     9 binlog-do-db=test_slave
    10 #设置logbin格式
    11 binlog_format=STATEMENT
    12 # 在作为从数据库的时候,有写入操作也要更新二进制日志文件
    13 log-slave-updates
    14 #表示自增长字段每次递增的量,指自增字段的起始值,其默认值是1,取值范围是1 .. 65535
    15 auto-increment-increment=2
    16 # 表示自增长字段从哪个数开始,指字段一次递增多少,他的取值范围是1 .. 65535
    17 auto-increment-offset=1

        slave1的配置(/etc/my.cnf)如下:

    1 #从服务器唯一ID
    2 server-id=2
    3 #启用中继日志
    4 relay-log=mysql-relay

        master2的配置(/etc/my.cnf)如下:

     1 #主服务器唯一ID
     2 server-id=3
     3 #启用二进制日志
     4 log-bin=mysql-bin
     5 # 设置不要复制的数据库(可设置多个)
     6 binlog-ignore-db=mysql
     7 binlog-ignore-db=information_schema
     8 #设置需要复制的数据库
     9 binlog-do-db=test_slave
    10 #设置logbin格式
    11 binlog_format=STATEMENT
    12 # 在作为从数据库的时候,有写入操作也要更新二进制日志文件
    13 log-slave-updates
    14 #表示自增长字段每次递增的量,指自增字段的起始值,其默认值是1,取值范围是1 .. 65535
    15 auto-increment-increment=2
    16 # 表示自增长字段从哪个数开始,指字段一次递增多少,他的取值范围是1 .. 65535
    17 auto-increment-offset=2

        slave2的配置(/etc/my.cnf)如下:

    1 #从服务器唯一ID
    2 server-id=3
    3 #启用中继日志
    4 relay-log=mysql-relay

      4、重启4个mysql实例服务

      5、查询主节点信息

        登录master1的mysql,执行以下命令:show master status;

        

        登录master2的mysql,执行以下命令:show master status;

        

      6、配置双从机

        1)登录slave1的mysql,执行以下命令

    1 CHANGE MASTER TO
    2 MASTER_HOST = '172.17.0.2',
    3 MASTER_USER = 'root',
    4 MASTER_PASSWORD = '123456',
    5 MASTER_PORT = 3306,
    6 MASTER_LOG_FILE='mysql-bin.000003',
    7 MASTER_LOG_POS=615;

        登录slave2的mysql,执行以下命令

    1 CHANGE MASTER TO
    2 MASTER_HOST = '172.17.0.4',
    3 MASTER_USER = 'root',
    4 MASTER_PASSWORD = '123456',
    5 MASTER_PORT = 3306,
    6 MASTER_LOG_FILE='mysql-bin.000003',
    7 MASTER_LOG_POS=787;

        2)分别启动2个节点的从服务

          命令:start slave;

        3)查看从服务状态

          命令:show slave statusG;

          如下:

          slave1

          

          slave2

          

      7、两个主机互相复制

        1)登录master1的mysql,执行以下命令

    1 CHANGE MASTER TO
    2 MASTER_HOST = '172.17.0.4',
    3 MASTER_USER = 'root',
    4 MASTER_PASSWORD = '123456',
    5 MASTER_PORT = 3306,
    6 MASTER_LOG_FILE='mysql-bin.000003',
    7 MASTER_LOG_POS=787;

        登录master2的mysql,执行以下命令

    1 CHANGE MASTER TO
    2 MASTER_HOST = '172.17.0.2',
    3 MASTER_USER = 'root',
    4 MASTER_PASSWORD = '123456',
    5 MASTER_PORT = 3306,
    6 MASTER_LOG_FILE='mysql-bin.000003',
    7 MASTER_LOG_POS=615;

        2)分别启动2个主节点的从服务

          命令:start slave;

    验证双主双从

      1、登录master1,创建数据库 test_slave

    1 CREATE DATABASE test_slave;

      2、创建表

    1 CREATE TABLE `test_tbl` (
    2   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    3   `title` varchar(100) NOT NULL,
    4   `update_date` date DEFAULT NULL,
    5   PRIMARY KEY (`id`)
    6 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

      3、插入数据

    1 INSERT INTO `test_slave`.`test_tbl`(`id`, `title`, `update_date`) VALUES (1, '白色', '2020-07-10');

      4、更新数据

    1 UPDATE `test_slave`.`test_tbl` SET `title` = '黑色', `update_date` = '2020-07-10' WHERE `id` = 1;

      查看master1、master2 和 slave1、slave2 节点数据是否相同

        

  • 相关阅读:
    Java 线程池
    Java 内存模型
    img图片铺满父元素
    element-ui 表单复杂数据类型校验
    element-ui 栅格布局 一行五等分
    element-ui表单只验证单个字段
    记录
    js-字符串全局替换
    vue3-搭建项目-vue2-vu3使用上的变化
    小程序引入echarts
  • 原文地址:https://www.cnblogs.com/h--d/p/13336776.html
Copyright © 2011-2022 走看看