关键词搜索

源码搜索 ×
×

基于Docker构建MySQL主从复制数据库

发布2022-08-08浏览779次

详情内容

0.前言

本次带来的是基于Docker-compose构建出MySQL单节点和主从复制的MySQL环境,本次使用的依旧是bitnami的第三方镜像资源。希望通过这个文章对于学习和使用Docker搭建MySQL的你提供帮助。

1.Docker构建单节点MySQL服务

1.1Docker-compose构建出MySQL节点服务

下面提供基于Docker-Compose 构建出单节点的MySQL服务的yml文件:

version: '2.1'

services:
  mysql:
    image: docker.io/bitnami/mysql:8.0
    ports:
      - '3306:3306'
    volumes:
      - 'mysql_data:/bitnami/mysql/data'
    environment:
      # ALLOW_EMPTY_PASSWORD is recommended only for development.
      - ALLOW_EMPTY_PASSWORD=yes
    healthcheck:
      test: ['CMD', '/opt/bitnami/scripts/mysql/healthcheck.sh']
      interval: 15s
      timeout: 5s
      retries: 6

volumes:
  mysql_data:
    driver: local

    1.2 配置信息

    • MYSQL_ROOT_USER:数据库管理员用户。缺省值为 。root
    • MYSQL_ROOT_PASSWORD:数据库管理员用户密码。无默认值。

    2.Docker-compose 构建MySQL主从复制集群

    2.1 Docker-compose构建

    下面是Docker-Compose构建MySQL主从复制集群的yml配置文件

    version: '2.1'
    
    services:
      mysql-master:
        image: docker.io/bitnami/mysql:8.0
        ports:
          - '3306'
        volumes:
          - 'mysql_master_data:/bitnami/mysql/data'
        environment:
          - MYSQL_REPLICATION_MODE=master
          - MYSQL_REPLICATION_USER=repl_user
          - MYSQL_USER=my_user
          - MYSQL_DATABASE=my_database
          # ALLOW_EMPTY_PASSWORD is recommended only for development.
          - ALLOW_EMPTY_PASSWORD=yes
          - MYSQL_ROOT_PASSWORD=my_root_password
        healthcheck:
          test: ['CMD', '/opt/bitnami/scripts/mysql/healthcheck.sh']
          interval: 15s
          timeout: 5s
          retries: 6
    
      mysql-slave:
        image: docker.io/bitnami/mysql:8.0
        ports:
          - '3306'
        depends_on:
          - mysql-master
        environment:
          - MYSQL_REPLICATION_MODE=slave
          - MYSQL_REPLICATION_USER=repl_user
          - MYSQL_USER=my_user
          - MYSQL_DATABASE=my_database
          - MYSQL_MASTER_HOST=mysql-master
          - MYSQL_MASTER_PORT_NUMBER=3306
          - MYSQL_MASTER_ROOT_PASSWORD=my_root_password
          # ALLOW_EMPTY_PASSWORD is recommended only for development.
          - ALLOW_EMPTY_PASSWORD=yes
        healthcheck:
          test: ['CMD', '/opt/bitnami/scripts/mysql/healthcheck.sh']
          interval: 15s
          timeout: 5s
          retries: 6
    
    volumes:
      mysql_master_data:
        driver: local
    
      22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48

    2.2 配置信息

    下面是基于Docker-Compose构建MySQL主从复制的一些环境变量的配置信息:

    • MYSQL_REPLICATION_MODE:复制模式。可能的值 /。无默认值。masterslave
    • MYSQL_REPLICATION_USER:首次运行时在主服务器上创建的复制用户。无默认值。
    • MYSQL_REPLICATION_PASSWORD:复制用户密码。无默认值。
    • MYSQL_MASTER_HOST:复制主站(从属参数)的主机名/IP。无默认值。
    • MYSQL_MASTER_PORT_NUMBER:复制主服务器的服务器端口(从属参数)。缺省值为 。3306
    • MYSQL_MASTER_ROOT_USER:复制主服务器上有权访问 (从属参数) 的用户。默认值为MYSQL_DATABASE=root
    • MYSQL_MASTER_ROOT_PASSWORD:复制主服务器上有权访问(从属参数)的用户的密码。无默认值。

    相关技术文章

    点击QQ咨询
    开通会员
    返回顶部
    ×
    微信扫码支付
    微信扫码支付
    确定支付下载
    请使用微信描二维码支付
    ×

    提示信息

    ×

    选择支付方式

    • 微信支付
    • 支付宝付款
    确定支付下载