【docker配置mysql主从复制模式】

1.获取mysql镜像: docker pull mysql:5.7

2.查看镜像:docker images

在这里插入图片描述

3.分别启动两个mysql容器,

主库: docker run -p 3307:3306 --name master_mysql -e MYSQL_ROOT_PASSWORD=123456 -d c20987f18b13
从库: docker run -p 3308:3306 --name slave_mysql -e MYSQL_ROOT_PASSWORD=123456 -d c20987f18b13

4.分别进入两个容器《 docker exec -it 容器Id /bin/bash 》进入目录 cd /etc/mysql 需要编辑该目录下的 my.conf文件

安装vim

  • apt-get update
  • apt-get install vim

主库配置

[mysqld]
## 同一局域网内注意要唯一
server-id=100
## 开启二进制日志功能,可以随便取(关键),同步的日志路径及文件名,一定注意这个目录要是 MySQL 有权限写入的
log-bin=mysql-bin
## 可选要同步的数据库名,不配置此参数代表所有的库
#binlog-do-db=

从库配置

[mysqld]
server-id=101
log-bin=mysql-slave-binlog
#relay_log配置中继日志
relay_log=mysql-relay-bin

5.在master数据库(主库)中创建同步用户授予用户slave REPLICATION SLAVE权限和REPLICATION CLIENT权限,用于在主从库之间同步数据

GRANT REPLICATION SLAVE ON *.* to 'slave'@'%' identified by '123'; 
FLUSH PRIVILEGES;
#出错使用下面命令在执行
ALTER USER ‘slave’@’%’ IDENTIFIED WITH mysql_native_password BY ‘123’;
FLUSH PRIVILEGES;


  1. 第一行命令是从机登陆用户名为slave 密码为123,%代表不限制ip地址登陆,如果限制IP地址登陆把这里改成需要的设置的IP即可,登陆成功可以操作任意库中的任意表
  2. 第二行为刷新

6.重启master数据库 service mysql restart 重启后容器会停止,需要重新启动容器 docker restart xxx 镜像ID

  1. 进入容器查看master主服务器当前二进制日志名和偏移量,这个操作的目的是为了在从数据库启动后,从这个点开始进行数据的恢复:
show master status;

在这里插入图片描述

7.在容器外查询master_host 后面跟容器名字或者容器ID

docker inspect --format='{{.NetworkSettings.IPAddress}}  容器ID

在这里插入图片描述

8.从库配置完my.conf 需要重启 在进入容器执行命令

change master to master_host='172.17.0.4', master_user='slave', master_password='123', master_port=3306, master_log_file='mysqle-binlog.000001', master_log_pos= 154, master_connect_retry=30;
#执行完上一步 在刷新一下
flush privileges;

这里配置了主库的host地址 和用户名密码 端口号以及binlog日志文件 备份的节点

  • 8.1启动 slave 进程
start slave;
  • 8.2 查看从库状态
show slave status \G

在这里插入图片描述
主要这两个配置都为yes证明配置成功
注意: 如果这两个有一个不为 YES ,表示主从环境搭建失败,此时可以阅读日志,查看出错的原因,再具体问题具体解决

  • 1.第一个为NO 证明是 主从配置server-id=100 这个值重复
  • 2.第二个为NO 需要具体看日志分析错误情况

总结:本文主要说了 MySQL 主从环境搭建 基于docker,那么基于linux大差不差的步骤,以上步骤经过反复测试,只要按照以上步骤操作,不会出现搭建失败的问题

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值