docker 里面配置mysql8主从复制

本文档详细介绍了如何在macOs环境下使用Docker搭建MySQL的主从复制。首先创建了两个配置文件夹,并指定了不同的server-id。接着通过docker命令创建了主机和从机的容器,并设置端口映射和共享配置文件。然后,在主机中创建了一个用于复制的账户,并测试了从机能否正常连接到主机。最后,通过指定主机的IP、端口、用户、密码、binlog文件及位置,成功开启了主从复制,并验证了从机的状态。
摘要由CSDN通过智能技术生成
一、环境

系统 :macOs 12.2 M1
docker版本 :20.10.17
mysql版本 :8.0.30

二、搭建mysql主从复制
  1. 创建两个文件夹作为主机和从机的配置文件
    目录结构为:

    mysql/master/my.cnf
    mysql/slave/my.cnf

    方便起见这里只指定server-id即可。
    
    mysql/master/my.cnf
    [mysqld]
    server-id=101
    
    mysql/slave/my.cnf
    [mysqld]
    server-id=102
    
  2. 创建容器

    • 创建主机容器的命令:
      docker run --name master -d -p 3307:3306 -v /Users/zhouwei/myfile/dockerfile/mysql/master:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD="123456" --privileged=true mysql
      其中 --name是指定容器名,-p是添加端口映射,-v则是共享容器卷,因为容器里面没有vi命令,不能够修改配置文件,所以需要先在本机上修改sercer-id之后共享配置文件。privileged=true是是权限(可不加),-e 则是设置mysql的root密码。
    • 创建从机容器的命令
      docker run --name slave -d -p 3308:3306 -v /Users/zhouwei/myfile/dockerfile/mysql/slave:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD="123456" --privileged=true mysql
      创建完之后记得docker ps看一下这两容器是否正在运行!!!
      在这里插入图片描述
  3. 在主机中创建账户

    • 首先进入主机
      docker exec -it master /bin/bash
    • 进入到mysql
      mysql -u root -p之后输入密码即可
    • 创建用户并赋予权限
    create user "zz"@"%" identified by "123456";
    grant all on *.* to  "zz"@"%";
    
  4. 在从机测试账户是否能正常登录主机mysql

mysql -u zw -h 192.168.10.103 --port=3307 -p # IP换成自己主机的IP,用户名和密码则是刚刚自己创建的。3307是主机的端口

在这里插入图片描述

  1. 开启主从复制
    • 首先在主机查看master的状态,得到日志文件名和开始的位置。
      在这里插入图片描述
    • 在从机上开启服务
这里的一些参数换成自己机器上的
change master to master_host='192.168.1.106', master_port=3307, master_user='zz', master_password='123456',master_log_file='binlog.000003',master_log_pos=862;
然后执行 
	start slave;
最后查看从机状态 
	show slave status\G
出现两个yes代表成功。

master_host是主机的IP,由于是在docker里面,这里输入本机IP即可
master_port是主机的端口
user和password则是刚刚创建的用户的名字和密码
log_file是在主机查看那个binlog文件
log_pos是主机状态的那个Position参数
在这里插入图片描述
如果遇到上面那个是no的,可以检查下配置文件,重启容器在试一次。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值