docker mysql 主从配置

准备:一台装有docker的虚拟机或者服务器

  1. 拉取mysql镜像:

docker pull mysql:5.6

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-irhzMbmQ-1666430905765)(F:\mysql\mysql主从\images\image-20221022164744226.png)]

  1. 启动两个mysql容器

master

docker run -p 1006:3306 --name mysql_master -v F:/mysql/mysql_master/conf:/etc/mysql -v F:/mysql/mysql_master/logs:/logs -v F:/mysql/mysql_master/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -itd mysql:5.6

slave

docker run -p 1007:3306 --name mysql_salve -v F:/mysql/mysql_salve/conf:/etc/mysql -v F:/mysql/mysql_salve/logs:/logs -v F:/mysql/mysql_salve/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -itd mysql:5.6
  1. 查看容器启动情况

docker ps

  1. 使用Navicat工具创建两个连接,分别为master和slave
    在这里插入图片描述

  2. 开启binlog日志

主库 修改 F:/mysql/mysql_master/conf/my.cnf

对应容器内路径是/etc/mysql/my.cnf

[mysqld]
server_id=1
log_bin=mysql-bin
binlog_format=ROW

从库

[mysqld]
server-id = 2
relay_log = /var/lib/mysql/mysql-relay-bin
relay_log-index = /var/lib/mysql/mysql-relay-bin.index
log_slave_updates = 1
read_only = 1 
  1. 配置好后重启docker容器

docker resatrt 容器名或者容器id

  1. 查看binlog状态

show global variables like '%log_bin%';

log_bin为ON是开启状态
在这里插入图片描述

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

CREATE USER 'slave'@'192.168.11.%' IDENTIFIED BY 'slave'

  1. 授予用户slave同步权限

GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';

  1. 刷新权限

flush privileges;

  1. 查询主库File和Position

     show master status;
    

在这里插入图片描述

  1. slave库链接master
change master to master_host='192.168.11.1', master_user='slave', master_password='slave', master_port=1006, master_log_file='mysql-bin.000004', master_log_pos= 1271;
  1. 启动从库

    start slave;

12.查看从库状态

show slave status;

当Slave_IO_Running和Slave_SQL_Running为Yes时,表示主从配置成功。

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荷逸同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值