mysql主从配置(级联复制)

##MySQL主从配置(级联复制结构)
###一、级联复制结构应用场景以及结构描述

  • 当系统读写压力差别较大,一个主服务器需要带很多个从服务器(10台从服务器以上),由于多个从服务器直接对主服务器直接进行复制所以连接到主服务器的Salve IO 线程就较多,这样在主服务器中写入数据时,多个从服务器同时进行复制,这样主服务器的负担会比较大。
  • 遇到这种情况就得使用级联复制结构:master->slave1->slave2, slave1服务器既是主服务器也是从服务器,slave1从master中复制,slave2从slave1中复制,这个只是简单模拟实际上可以多层且每层多个。

###二、配置第一级主从服务

  • 点击链接转跳到简单主从配置教程
    https://blog.csdn.net/qq_47667271/article/details/132508011
  • 配置好简单的主从配置后需要在从服务器中进行如下配置,从服务器才能既当从服务器又当主服务器。
    - my.cnf文件配置
#进入slave1服务器中配置my.cnf文件
[mysql]
server-id=2
#添加如下配置
log-bin=mysq1-bin
binlog_format=mixed
#表示从主服务器的二进制日志更新到当前服务器的mysql-bin日志文件中
log_slave_updates=1
  • slave1创建复制用户给slave2使用
grant replication slave on *.* to slave01cp@% identified by "123456"
  • 将需要主从的库复制到从库
#先加锁
flush tables with read lock;
#进入库
use databaseName
#导出sql文件,在Linux中执行不是进入到mysql命令行中执行
mysqldump -uroot -p123456 --all-databases --master-data=2 --events > /all_bak.sql
#把导出的sql文件发送到从数据库服务器中执行就完成了主从手动复制(在mysql命令行中)
source /all_bak.sql
#解锁主数据库
unlock tables;

###三、配置第二级主从服务

  • 创建一个新的mysql从服务(我这里是使用docker进行模拟的)
docker run -itd --name mysql5.7_slave2 -p 3311:3306 -e MYSQL_ROOT_PASSWORD='123456' mysql:5.7
  • 将这个新的mysql服务器配置成slave1的从服务器,进入配置文件配置,配置好后需要重启对应的mysql服务
[mysql]
#server-id需要是唯一的不能和其他mysql的相同
server-id=12
  • 配置从服务器连接主服务器信息(在mysql中执行)
#ip是主服务器的ip,userName是主服务器用户名,password是用户密码,剩下的都是关键字了,其实还有很多配置项。
change master to master_host='ip',master_user='userName',master_password='password'
  • 启动slave(在mysql中执行)
#启动
start slave;
#查看状态
show slave status\G
#下面两个字段为Yes表示连接主服务器成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
字段为Yes表示连接主服务器成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

至此级联从属(master->slave1->slave2)的部署就完成了,对master进行操作,检查slave1、slave2是否都进行了复制即可校验部署是否成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值