使用 docker +docker-compos 快速搭建 mysql5.7主从数据库

  1. 创建mysql主从库配置目录
mkdir -p /docker-data/mysql/master/conf

mkdir -p /docker-data/mysql/slave/conf
  1. /docker-data/mysql/master/conf下,创建my.cnf配置文件
[client]

port=3306

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

character_set_server=utf8

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

# 配置大小写不敏感

lower_case_table_names=1

## 同一局域网内注意要唯一

server-id=100  

## 开启二进制日志功能(关键)

log-bin=mysql-bin
  1. /docker-data/mysql/slave/conf下,创建my.cnf配置文件
[client]

port=3306

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

character_set_server=utf8

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

# 配置大小写不敏感

lower_case_table_names=1

## 同一局域网内注意要唯一

server-id=101  

 

  1. 使用docker-compose来管理mysql主从库,

/docker-data/mysql下创建docker-compose.yaml

vi docker-compose.yaml

version: '3'

services:

  mysql-slave:

    image: mysql:5.7

    depends_on:

      - mysql-master

    links:

      - mysql-master

    volumes:

      - /docker-data/mysql/slave/data:/var/lib/mysql

      - /docker-data/mysql/slave/conf:/etc/mysql

      - /docker-data/mysql/slave/log:/var/log/mysql

    ports:

         - "3308:3306"

    restart: always

    environment:

      MYSQL_ROOT_PASSWORD: root

    container_name: mysql-slave

  mysql-master:

    image: mysql:5.7

    volumes:

      - /docker-data/mysql/master/data:/var/lib/mysql

      - /docker-data/mysql/master/conf:/etc/mysql

      - /docker-data/mysql/master/log:/var/log/mysql

    ports:

         - "3307:3306"

    restart: always

    environment:

      MYSQL_ROOT_PASSWORD: root

    container_name: mysql-master
  1. 启动compose来启动mysql

docker-compose up -d

  1. 主数据库配置,连接主库并创建数据同步用户

CREATE USER 'slave'@'%' IDENTIFIED BY '123456';

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

 

SHOW MASTER STATUS ;

 

  1. 从数据库配置,连接从库配置从库同步连接(指定连接的ip/port/user/passwd以及上图中show master status命令得到的file和position值)

CHANGE MASTER TO MASTER_HOST='192.168.0.3',MASTER_PORT=3307,MASTER_USER='slave',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=609;

#启动同步进程

START SLAVE;

  1. 测试结果状态

主库查询进程:SHOW PROCESSLIST

 

从库查询进程:SHOW PROCESSLIST

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值