mysql主从复制

主从复制原理

在这里插入图片描述

Master的事件会按照顺序写入binary-log中。当Slave连接到Master的后,Master机器会为Slave开启binlog dump线程,该线程会去读取bin-log日志。在Slave连接到Master后,Slave库有一个I/O线程 通过请求log dump thread读取binary-log日志,然后写入从库的relay-log日志中。Slave还有一个 SQL线程,实时监控 relay-log日志内容是否有更新,解析文件中的SQL语句,在Slave数据库中去执行。

主从复制配置步骤

启动docker

systemctl start docker

在这里插入图片描述

搭配环境

docker run --name M1 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 --lower_case_table_names=1
docker run --name M1S1 -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 --lower_case_table_names=1

在这里插入图片描述

修改配置文件

mkdir /mysqlms
cd /mysqlms
docker cp M1:/etc/mysql/conf.d/docker.cnf m1.cnf
docker cp M1S1:/etc/mysql/conf.d/docker.cnf m1s1.cnf

在这里插入图片描述

配置主机m1.cnf

vim m1.cnf

在其中添加
server-id=1
log-bin=master.bin
在这里插入图片描述

配置从机m1s1.cnf

vim m1s1.cnf

在其中添加
server-id=2
在这里插入图片描述
配置文件修改后,复制到容器里面

docker cp m1.cnf M1:/etc/mysql/conf.d/docker.cnf
docker cp m1s1.cnf M1S1:/etc/mysql/conf.d/docker.cnf

重启MySQL(m1,m1s1)

docker restart M1 M1S1

进入主机里面执行相关配置

docker exec -it M1 bash
mysql -uroot -p123456

在这里插入图片描述

创建用户

create user 'rep'@'%' identified by '123456';

在这里插入图片描述

给该用户授予权限

grant replication slave on *.* to 'rep'@'%';

在这里插入图片描述

刷新权限

flush privileges;

在这里插入图片描述

使用M1 里面的rep 用户登录

mysql -urep -p123456

在这里插入图片描述

进入从机里面执行相关配置

docker exec -it M1S1 bash
mysql -uroot -p123456

在这里插入图片描述

change master to
master_host="192.168.100.128",master_port=3307,
master_user="rep",
master_password="123456",
master_log_file="master.000001",
master_log_pos=745;

在这里插入图片描述

进入M1 里面使用root 用户登录M1查看master_log_file

show master status;

在这里插入图片描述

启动主从:(在M1S1里面执行)

start slave ;

在这里插入图片描述

查询主从的状态(M1S1)

show slave status \G

在这里插入图片描述
当出现
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
即为成功

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值