Mysql 两主两从同步

本文详细介绍了如何在4台CentOS7.4服务器上配置MySQL双主双从复制,包括环境准备、配置文件修改、主从节点信息查询、配置双从机、启动从服务以及验证数据同步。通过此配置,实现了两个主节点和两个从节点之间的数据实时同步。
摘要由CSDN通过智能技术生成

 

搭建步骤

  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实例,参考:

  3、修改4个mysql的配置

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

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

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

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

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

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

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

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

4、重启4个mysql实例服务

5、查询主节点信息

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

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

6、配置双从机

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

CHANGE MASTER TO
MASTER_HOST = '172.17.0.2',
MASTER_USER = 'root',
MASTER_PASSWORD = '123456',
MASTER_PORT = 3306,
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=615;

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

CHANGE MASTER TO
MASTER_HOST = '172.17.0.4',
MASTER_USER = 'root',
MASTER_PASSWORD = '123456',
MASTER_PORT = 3306,
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=787;

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

      命令:start slave;

    3)查看从服务状态

      命令:show slave status\G;

      如下:

      slave1

                       slave2 

7、两个主机互相复制

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

CHANGE MASTER TO
MASTER_HOST = '172.17.0.4',
MASTER_USER = 'root',
MASTER_PASSWORD = '123456',
MASTER_PORT = 3306,
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=787;

 

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

CHANGE MASTER TO
MASTER_HOST = '172.17.0.2',
MASTER_USER = 'root',
MASTER_PASSWORD = '123456',
MASTER_PORT = 3306,
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=615;

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

      命令:start slave;

验证双主双从

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

                                CREATE DATABASE test_slave;

                

                2、创建表

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

                 3、插入数据

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

                4、更新数据

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

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值