美文网首页
【MariaDB】Docker安装MariaDB,主从复制

【MariaDB】Docker安装MariaDB,主从复制

作者: 小伙纸2022 | 来源:发表于2022-11-14 15:15 被阅读0次

    What is MariaDB?

    MariaDB 是一个开源、社区开发的 SQL 数据库服务器,由于其企业特性、灵活性以及与领先科技公司的协作,在全球范围内广泛使用。

    持久化数据库并设置允许空密码

    docker run \
        -e ALLOW_EMPTY_PASSWORD=yes \
        -v /path/to/mariadb-persistence:/bitnami/mariadb \
        bitnami/mariadb:latest
    

    首次运行时设置 root 密码

    可以使用以下环境变量通过 Bitnami MariaDB Docker 映像轻松设置 root 用户和密码:

    • MARIADB_ROOT_USER: 数据库管理员用户。默认root。
    • MARIADB_ROOT_PASSWORD: 数据库管理员用户密码。
    docker run --name mariadb -e MARIADB_ROOT_PASSWORD=password123 bitnami/mariadb:latest
    

    首次运行时创建数据库

    通过第一次运行image时,通过Mariadb_database环境变量传递数据库。如果应用程序要求数据库已经存在,这将很有用,否则将不得不使用MySQL客户端手动创建数据库。

    docker run --name mariadb \
        -e ALLOW_EMPTY_PASSWORD=yes \
        -e MARIADB_DATABASE=my_database \
        bitnami/mariadb:latest
    

    设置复制集群

    在复制集群中,您可以拥有一个主服务器和零个或多个从服务器。启用复制后,主节点处于读写模式,而从节点处于只读模式。为了获得最佳性能,建议限制对从属设备的读取。

    1. 创建复制主机
     docker run --name mariadb-master \
      -e MARIADB_ROOT_PASSWORD=master_root_password \
      -e MARIADB_REPLICATION_MODE=master \
      -e MARIADB_REPLICATION_USER=my_repl_user \
      -e MARIADB_REPLICATION_PASSWORD=my_repl_password \
      -e MARIADB_USER=my_user \
      -e MARIADB_PASSWORD=my_password \
      -e MARIADB_DATABASE=my_database \
      bitnami/mariadb:latest
    
    1. 创建复制从属
     docker run --name mariadb-slave --link mariadb-master:master \
      -e MARIADB_REPLICATION_MODE=slave \
      -e MARIADB_REPLICATION_USER=my_repl_user \
      -e MARIADB_REPLICATION_PASSWORD=my_repl_password \
      -e MARIADB_MASTER_HOST=master \
      -e MARIADB_MASTER_ROOT_PASSWORD=master_root_password \
      bitnami/mariadb:latest
    

    在已经启动并运行了一个两节点 MariaDB 主/从复制集群。可以通过添加/删除从属服务器来扩展集群,而不会导致任何停机。

    或者使用DockerCompose安装:

    version: '2'
    
    services:
      mariadb-master:
        image: 'bitnami/mariadb:latest'
        ports:
          - '3306'
        volumes:
          - /path/to/mariadb-persistence:/bitnami/mariadb
        environment:
          - MARIADB_REPLICATION_MODE=master
          - MARIADB_REPLICATION_USER=repl_user
          - MARIADB_REPLICATION_PASSWORD=repl_password
          - MARIADB_ROOT_PASSWORD=master_root_password
          - MARIADB_USER=my_user
          - MARIADB_PASSWORD=my_password
          - MARIADB_DATABASE=my_database
      mariadb-slave:
        image: 'bitnami/mariadb:latest'
        ports:
          - '3306'
        depends_on:
          - mariadb-master
        environment:
          - MARIADB_REPLICATION_MODE=slave
          - MARIADB_REPLICATION_USER=repl_user
          - MARIADB_REPLICATION_PASSWORD=repl_password
          - MARIADB_MASTER_HOST=mariadb-master
          - MARIADB_MASTER_PORT_NUMBER=3306
          - MARIADB_MASTER_ROOT_PASSWORD=master_root_password
    

    使用以下方法缩放从属设备的数量:

    docker-compose up --detach --scale mariadb-master=1 --scale mariadb-slave=3
    

    相关文章

      网友评论

          本文标题:【MariaDB】Docker安装MariaDB,主从复制

          本文链接:https://www.haomeiwen.com/subject/drmlxdtx.html