docker-compose 创建MySQL容器及搭建MySQL一主三从

目录

一、安装docker-compose

二、使用docker-compose搭建MySQL一主三从

 三、搭建MySQL的主从结构


此处是使用docker-compose搭建MySQL的一主三从

一、安装docker-compose

1.下载docker-compose二进制文件:

(1)下载:

wget https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-linux-x86_64

(2)考虑网络不好,可直接使用已经下载的二进制文件,上传到虚拟机中

链接:https://pan.baidu.com/s/1EG1Em-cqwym0NoannIxjXg?pwd=vm12 
提取码:vm12 

2.将二进制文件移到指定目录下并重命名

mv /root/docker-compose/docker-compose-linux-x86_64 /usr/local/bin/docker-compose

3.进入/usr/local/bin目录下给二进制文件授权:x

chmod +x docker-compose

4.确认版本是否安装成功

docker-compose --version

二、使用docker-compose搭建MySQL一主三从

1.拉去MySQL镜像文件:docker pull mysql

2.使用docker-compose创建4台MySQL容器

(1)构建docker-compose配置文件

注意:格式需要准确,否则会出错

version: '3.0'
services:
  master:
    image: mysql:latest
    container_name: master
    restart: always
    network_mode: bridge
    ports:
      - 3306:3306
    environment:
      LANG: C-UTF.8
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: "root"
    volumes: 
      - /root/sql/:/sql

  slave01:
    image: mysql:latest
    container_name: slave01
    restart: always
    network_mode: bridge
    ports:
      - 3307:3306
    environment:
      LANG: C-UTF.8
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: "root"
    volumes: 
      - /root/sql/:/sql

  slave02:
    image: mysql:latest
    container_name: slave02
    restart: always
    network_mode: bridge
    ports:
      - 3308:3306
    environment:
      LANG: C-UTF.8
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: "root"
    volumes: 
      - /root/sql/:/sql

  slave03:
    image: mysql:latest
    container_name: slave03
    restart: always
    network_mode: bridge
    ports:
      - 3309:3306
    environment:
      LANG: C-UTF.8
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: "root"
    volumes: 
      - /root/sql/:/sql

 (2)快速构建四台MySQL容器master、slave01、slave02、slave03

docker-compose -f docker-compose-mysql.yml up -d

(3)查看MySQL容器

docker ps -a

 三、搭建MySQL的主从结构

1.修改配置从机的 my.conf文件(slave01、slave02、slave03)

(1)进入从机容器中:docker exec -it slave01 bash

(2)找到配置文件my.cnf

(3)将文件复制到宿主机中进行修改

docker cp slave01:/etc/my.cnf ./

vim my.cnf

(4) 从机依次修改修改内容:添加 server_id=2(主机为1,从机1为2,从机2为3,从机3为4)

(5)将修改后的文件复制覆盖原来从机中的my.cnf文件

(6)重启从机

docker restart slave01 slave02 slave03

2.查看master、slave01、slave02、slave03的server_id

3.由于MySQL版本差异,需要修改插件身份验证密码(master、slave01、slave02、slave03都需要修改,执行4次

(1)进入容器:docker exec -it master mysql -uroot -proot

(2)use mysq;

(3)查看user表:select Host,User,plugin,authentication_String from user;

(4)修改密码:alter user 'root'@'%' identified with mysql_native_password by 'root';

(5)刷新生效:flush privileges;

4.从机主机完成复制(从机同步主机容器内容)

(1)查看主机状态(master):show master status;

 

(2)从机(slave01、slave02、slave03)中执行配置,每台从机中执行一次:

         执行以下代码

change master to
master_host='192.168.175.11',
master_port=3306,
master_user='root',
master_password='root',
master_log_file='binlog.000002',
master_log_pos=616;

        启动salve:start slave;

        查看是否成功:show slave status /G;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值