• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    详解用Docker构建MySQL主从环境

    前言

    本篇文章记录我使用 docker-compose 以及 dockerfile 来构建基于 binlog 的 MySQL 主从环境。如果你严格按照文中的步骤进行配置,相信很快就可以搭建好一个基础的 MySQL 主从环境。

    介绍

    MySQL 主从同步分为 3 个步骤:

    配置

    创建目录结构

    首先先搞定目录结构,我的目录结构如下,如果想按照自己的想法来组建目录,在下文中的 docker-compose.yaml 文件与 Dockerfile 文件要注意修改文件路径。

    配置 docker-compose 模版文件

    version: "3"
    services:
     mysql-master:
     build:
      context: ./
      dockerfile: mysql/master/Dockerfile
     container_name: mysql-master
     volumes:
      - ./mysql/master/data:/var/lib/mysql
     restart: always
     ports:
      - 3305:3306
     links:
      - mysql-slave
    
     mysql-slave:
     build:
      context: ./
      dockerfile: mysql/slave/Dockerfile
     container_name: mysql-slave
     volumes:
      - ./mysql/slave/data:/var/lib/mysql
     restart: always
     ports:
      - 3306:3306

    配置 master 节点的 cluster.cnf 文件以及 Dockerfile 文件

    [mysqld]
    server_id=100
    binlog-ignore-db=mysql
    log-bin=replicas-mysql-bin
    binlog_cache_size=1M
    binlog_format=mixed
    slave_skip_errors=1062
    
    # 我的 MySQL 为 8.x,需要如下配置
    default_authentication_plugin=mysql_native_password
    character-set-server=utf8mb4
    collation-server=utf8mb4_unicode_ci
    FROM mysql:latest
    ADD ./mysql/master/cluster.cnf /etc/mysql/conf.d/cluster.cnf
    ENV MYSQL_ROOT_PASSWORD=password

    配置 slave 节点的 cluster.cnf 文件以及 Dockerfile 文件

    [mysqld]
    server_id=101
    binlog-ignore-db=mysql
    binlog_cache_size=1M
    binlog_format=mixed
    slave_skip_errors=1062
    relay_log=replicas-mysql-relay-bin
    log_slave_updates=1
    read_only=1
    
    # 我的 MySQL 为 8.x,需要如下配置
    default_authentication_plugin=mysql_native_password
    character-set-server=utf8mb4
    collation-server=utf8mb4_unicode_ci
    FROM mysql:latest
    ADD ./mysql/slave/cluster.cnf /etc/mysql/conf.d/cluster.cnf
    ENV MYSQL_ROOT_PASSWORD=password

    创建容器

    docker-compose up -d mysql-master mysql-slave

    运行上述命令进行容器创建,如果构建时间过长,可以考虑更换镜像源,例如下面几个国内优质镜像源:

    网易: http://hub-mirror.c.163.com

    阿里云: http://&lt ;你的ID>.mirror.aliyuncs.com

    中国科学技术大学: http://docker.mirrors.ustc.ed...

    构建完成之后,使用 docker ps 命令查看一下容器是否正常运行,出现如下情形则可以认为已经构建成功。

    配置 slave 节点

    首先使用 docker 命令进入到 mysql-master 容器中,再登录到 mysql 输入 show master status 命令获取主库状态,这里我们要关心两个参数 File 以及 Position ,之后配置从库会用到这两个参数。

    接下来使用 docker 命令进入 mysql-slave 容器,再登录到 mysql 输入以下语句进行与 mysql-master 连接。

    CHANGE MASTER TO
     MASTER_HOST='mysql-master',
     MASTER_USER='root',
     MASTER_PASSWORD=你设置的密码,
     MASTER_LOG_FILE=上一步得到的 File 参数,
     MASTER_LOG_POS=上一步得到的 Position 参数;

    输入完成后再键入 start slave 命令启动 slave 服务。启动之后输入 show slave status \G 命令查看 slave 节点状态,出现如下情形可认为配置成功。

    测试主从节点同步状态

    登录到 mysql-master 节点,创建一个全新的库,创建成功之后,切换到 mysql-slave 节点,输入 show databases; 命令,查看是否成功同步,出现如下情形则配置成功。其他操作可以自己尝试,这里不再做演示。

    总结

    这是我自己尝试搭建 MySQL 主从架构所记录的步骤,到此这篇关于详解用Docker构建MySQL主从环境的文章就介绍到这了,更多相关Docker构建MySQL主从内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    上一篇:为什么我推荐Nginx作为后端服务器代理(原因解析)
    下一篇:使用Nginx搭建流媒体服务器实现直播功能
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    详解用Docker构建MySQL主从环境 详解,用,Docker,构建,MySQL,