MySQL主从复制配置(双主双从)

本文详细描述了如何在IT环境中规划并配置一主双从的MySQL架构,包括环境准备、主库和从库的配置、同步账号的建立以及主从关系的设置,确保数据的高可用性和一致性。
摘要由CSDN通过智能技术生成

目录

一、架构规划

1、规划图

2、环境准备

二、修改配置

1、主库配置

1.1配置master1

1.2配置master2

2、从库配置

2.1配置slave1

2.2配置slave2

3、重启服务

三、建立同步账号

1、master1上建立

2、master2上建立

四、配置主从关系

1、配置从服务器slave1

1.1slave1复制master1

1.2启动slave1的复制功能

2、配置从服务器slave2

2.1slave2复制master2

2.2启动slave2的复制功能 

3、配置两主服务器互为主从

3.1 master2复制master1

3.2 master1复制master2


一、架构规划

一主多从可以缓解读的压力,但是如果主宕机了,所有从都不能写了,因此我们配置双主双从。

1、规划图

master1和master2互为主从关系,slave1是master1的从,slave2是master2的从。

2、环境准备

准备四台机器,其中两台为主(master1和master2),两台为从(slave1和slave2)

主master1192.168.198.140
主master2192.168.198.141
从slave1192.168.198.100
从slave2192.168.198.101

二、修改配置

1、主库配置

1.1配置master1

修改配置文件/etc/my.cnf

1.2配置master2

同样和master1一样的修改操作,但是注意server-id可以随便设置,但是必须唯一(不能相同)

2、从库配置

2.1配置slave1

2.2配置slave2

3、重启服务

四台机器都要重启MySQL服务,并检查状态

systemctl restart mysqld

systemctl status mysqld

三、建立同步账号

1、master1上建立

进入mysql,设置同步账号名为rep,密码为Rep@123456,并授权

grant replication slave on *.* to 'rep'@'192.168.198.%' identified by 'Rep@123456';

然后查看状态,并记录下File和Position的值

至此,就不要再操作master1的mysql了,不然的话,这两个值就会发生变化

2、master2上建立

也是同样的方法,并且也要看到File和Position这两个关键值

四、配置主从关系

方法就是在从机上配置需要复制的主机,复制主机的命令如下:

change master to
MASTER_HOST='被从机复制的主机master的ip',
MASTER_USER='同步账号名',
MASTER_PASSWORD='同步账号的密码',
MASTER_LOG_FILE='记录的File的值',
MASTER_LOG_POS= 记录的Position的值 ;

1、配置从服务器slave1

1.1slave1复制master1

在从机slave1上操作,复制对象是master1

由主库master1的状态表可知,从库上的MASTER_LOG_FILE参数的值就是mysql-bin.000043,MASTER_LOG_POS参数的值是448

1.2启动slave1的复制功能

在slave1上使用命令start slave


发现报错:ERROR 1872 (HY000): Replica failed to initialize applier metadata structure from the repository

这是因为数据库以前配置过,生成过中继日志,所以slave中还记录着旧日志,所以需要用命令reset slave去重置,注意reset之后,再重新配置主从关系,然后再启动就可以了

既然成功启动,那我们可以查看从库状态

Slave_IO_Running和Slave_SQL_Running这两个参数必须同时为Yes,即IO线程和SQL线程启动成功

2、配置从服务器slave2

2.1slave2复制master2

在从机slave2上操作,复制对象是master2

由主库master2的状态表可知,从库上的MASTER_LOG_FILE参数的值就是mysql-bin.000008,MASTER_LOG_POS参数的值是448

2.2启动slave2的复制功能 

在slave2上使用命令start slave;

然后检查状态是否为双Yes,这样就成功了

3、配置两主服务器互为主从

要实现互为主从的方式很简单,即master2复制master1,master1复制master2。因此同样地去建立主从关系即可

3.1 master2复制master1

在master2上操作

注:IO线程第一次没起来,查看报错日志/var/log/mysqld.log之后,我重启了master1,因此master1的File和Position的值变化了,一定要重新查看状态

回头再看了,发现就是自己设置日志文件的时候多加了个小数点,,,,

既然已经重启了,就只能重新查看状态再设置了 

然后在master2上重新建立主从

这下才成功

3.2 master1复制master2

在master1上同样的操作思路,双Yes就没问题

最后就完成配置了,可以自己测试一下

  • 21
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值