Docker 搭建MySQL主从环境

docker-compose.yml文件

version: '3.7'
 
services:

    mysql-master:
        container_name: mysql-master
        image: hub.c.163.com/library/mysql:5.7
        #主要是设置 lig-bin  
        command: --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --server-id=201 --log-bin=mysql-master-bin --relay_log=ep-mysql-relay-bin --read_only=1
        environment:
            - TZ=Asia/Shanghai
            # mysql密码
            - MYSQL_ROOT_PASSWORD=123456
        ports:
            - 3306:3306
 
    mysql-slave-1:
        container_name: mysql-slave-1
        image: hub.c.163.com/library/mysql:5.7
 
        # relay_log主要是用来 连级复制   , 需开启自身的binlog
        # command: --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --server-id=202 --log-bin=mysql-slave-bin --relay_log=ep-mysql-relay-bin  --read_only=1
        command: --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --server-id=202 
 
        environment:
            - TZ=Asia/Shanghai
            # mysql密码
            - MYSQL_ROOT_PASSWORD=123456
 
        ports:
            - 3307:3306
        # network就不写了 docker 会创建一个 mysql_default的网络。

    mysql-slave-2:
        container_name: mysql-slave-2
        image: hub.c.163.com/library/mysql:5.7
        command: --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --server-id=203 
        environment:
            - TZ=Asia/Shanghai
            # mysql密码
            - MYSQL_ROOT_PASSWORD=123456
        ports:
            - 3308:3306

用到的sql :

#master.sql
#创建用户供从机(slave)来读取文件
CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
#查看 master 状态 主要是看   file 和 posttion 供从机使用
show master status;
# change master to master_host='mysql-master', master_user='slave', master_password='123456', master_port=3306, 
#     master_log_file='mysql-master-bin.000003', master_log_pos= 2030, master_connect_retry=30;
# master_host='mysql-master' 这里用了docker的网络,也可以自己去找对应的ip
change master to master_host='mysql-master', master_port=3306,
    master_log_file='mysql-master-bin.000003', master_log_pos= 609, master_connect_retry=30;

# mysql 推荐 START SLAVE  时指定用户名密码,而不是写到上边的change master里
START SLAVE USER='slave' PASSWORD='123456'
# 相关命令: 停止 SLAVE 行为 
STOP SLAVE
# 相关命令: 停止 SLAVE 行为 
show slave status
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值