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


    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
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 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:复制主服务器上有权访问(从属参数)的用户的密码。无默认值。
  • 相关阅读:
    SSI漏洞之[BJDCTF2020]EasySearch1
    【性能优化】MySQL性能优化之存储引擎调优
    基于吉萨金字塔建造优化的BP神经网络(分类应用) - 附代码
    spacy教程(持续更新ing...)
    【uniapp小程序】视图容器cover-view
    1636. 按照频率将数组升序排序(难度:简单)
    【Harmony OS】【ArkUI】ets开发 创建视图与构建布局
    按照图片名称移动到文件夹中保存
    Echarts 中国地图
    iOS学习 --- iOS12对象序列化(NSKeyedArchiver/NSKeyedUnarchiver)
  • 原文地址:https://blog.csdn.net/m0_43405302/article/details/126230335