docker-compose配置 mysql 一主一从

docker-compose配置 mysql 一主一从

编写 mysql-master 的 compose 文件

version: '3.1'
services:
  mysql:
    restart: always
    image: mysql:5.7.25 # 镜像版本
    container_name: mysql-master #docker 实例名称
    ports:
      - 3307:3306 # 端口映射 暴露端口:内部端口
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 123456 # root账号的密码
    command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
      --max_allowed_packet=128M
      --server-id=47
      --log_bin=master-bin
      --log_bin-index=master-bin.index
      --skip-name-resolve
      --sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
    volumes:
     - ./data:/var/lib/mysql

编写 mysql-slave 的 compose 文件

version: '3.1'
services:
  mysql:
    restart: always
    image: mysql:5.7.25
    container_name: mysql-slave
    ports:
      - 3308:3306
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 123456
    command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
      --max_allowed_packet=128M
      --server-id=48
      --relay-log-index=slave-relay-bin.index
      --relay-log=slave-relay-bin
      --log-bin=mysql-bin
      --log-slave-updates=1
      --sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
    volumes:
      - ./data:/var/lib/mysql

查看 mysql-master 的状态

SHOW MASTER STATUS;

mysql-master状态

配置 mysql-slave

设置 master 连接

MASTER_LOG_FILE 以及 MASTER_LOG_POS 这两个的配置一定要和 show master status 中查看到的一致!!!
不然就会出现 Slave_IO_Running状态为 NO !!!

CHANGE MASTER TO
MASTER_HOST='192.168.148.139',
MASTER_PORT=3307,
MASTER_USER='root',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='master-bin.000004', -- 与 show master status 查出来的 File 要一致
MASTER_LOG_POS=1681; -- 与 show master status 查出来的 position 要一致

启动 slave

START SLAVE;

查看 slave 状态

-- 方式一
SHOW SLAVE STATUS;

-- 方式二
SHOW SLAVE STATUS \G;

我这里用的是方式一
mysql-slave状态

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

花牌

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

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

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

打赏作者

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

抵扣说明:

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

余额充值