docker 配置 MySQL 主从数据库

docker compose up -d
docker ps

进入主库
docker exec -it mysql-master mysql --default-character-set=utf8mb4 -uroot -p123456
show variables like ‘character_set%’;

CREATE USER 'repl'@'%' IDENTIFIED BY 'repl123456';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;

SHOW MASTER STATUS;

得到:
File:
mysql-bin.000001
Position:
154
把这两个值记下来:
● File
● Position

进入从库:
docker exec -it mysql-slave mysql --default-character-set=utf8mb4 -uroot -p123456
输入密码:
123456
执行:
CHANGE MASTER TO
MASTER_HOST=‘host.docker.internal’,
MASTER_PORT=3307,
MASTER_USER=‘repl’,
MASTER_PASSWORD=‘repl123456’,
MASTER_LOG_FILE=‘mysql-bin.000001’,
MASTER_LOG_POS=154;
然后启动复制:
START SLAVE;
检查状态:
SHOW SLAVE STATUS\G
重点看这两个字段:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
配置主从成功

文件夹结构:

在这里插入图片描述
docker-compose.yml:

version: '3.8'

services:
  mysql-master:
    image: mysql:5.7.25
    container_name: mysql-master
    restart: always
    ports:
      - "3307:3306"
    environment:
      MYSQL_ROOT_PASSWORD: 123456
    command:
      - --server-id=1
      - --log-bin=mysql-bin
      - --binlog-format=ROW
      - --default-time-zone=+08:00
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_general_ci
      - --skip-name-resolve
    volumes:
      - ./master/data:/var/lib/mysql

  mysql-slave:
    image: mysql:5.7.25
    container_name: mysql-slave
    restart: always
    ports:
      - "3308:3306"
    environment:
      MYSQL_ROOT_PASSWORD: 123456
    command:
      - --server-id=2
      - --log-bin=mysql-bin
      - --relay-log=mysql-relay-bin
      - --read-only=1
      - --binlog-format=ROW
      - --default-time-zone=+08:00
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_general_ci
      - --skip-name-resolve
    volumes:
      - ./slave/data:/var/lib/mysql
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值