【问题标题】:Docker Compose : Percona XtraDB Cluster BootstrappingDocker Compose:Percona XtraDB 集群引导
【发布时间】:2020-02-19 10:43:29
【问题描述】:

我需要一些帮助。如何在 docker-compose 上将 Percona XtraDB Cluster 引导为第一个节点?

我有这个 my.cnf 文件

wsrep_provider=/usr/lib64/galera3/libgalera_smm.so
wsrep_cluster_name=pxc-cluster
wsrep_cluster_address=gcomm://192.168.56.15,192.168.56.20,192.168.56.25
wsrep_node_name=pxc1
wsrep_node_address=192.168.56.15
wsrep_sst_method=xtrabackup-v2
wsrep_sst_auth=xtrabackup:1q2w3e4r
pxc_strict_mode=ENFORCING
!include /etc/mysql/node.cnf

docker-compose.yml

version: '2'
services:
    percona-xtradb-cluster:
        container_name: pxc_node
        image: 'percona/percona-xtradb-cluster:5.7'
        environment:
            - MYSQL_ROOT_PASSWORD=root
            - CLUSTER_NAME=pxc-cluster
            - XTRABACKUP_PASSWORD=1q2w3e4r
        ports:
            - 3306:3306
            - 4567:4567
            - 4568:4568
            - 4444:4444
        volumes:
            - /etc/percona.d/my.cnf:/etc/my.cnf

运行 sudo docker-compose up -d

【问题讨论】:

    标签: mysql docker ubuntu docker-compose percona-xtradb-cluster


    【解决方案1】:

    根据manual,看来你应该在第一台服务器启动后才启动第二台和第三台服务器,所以,你的 docker compose 应该是这样的

    
    
    version: '2'
    services:
        percona-xtradb-cluster:
            container_name: pxc_node
            image: 'percona/percona-xtradb-cluster:5.7'
            environment:
                - MYSQL_ROOT_PASSWORD=root
                - CLUSTER_NAME=pxc-cluster
                - XTRABACKUP_PASSWORD=1q2w3e4r
            ports:
                - 3306:3306
                - 4567:4567
                - 4568:4568
                - 4444:4444
            volumes:
                - /etc/percona.d/my.cnf:/etc/my.cnf
    
        percona-xtradb-server1:
            depends_on: 
              - percona-xtradb-cluster
            container_name: pxc_node1
            image: 'percona/percona-xtradb-cluster:5.7'
            environment:
                - MYSQL_ROOT_PASSWORD=root
                - CLUSTER_NAME=pxc-cluster
                - CLUSTER_JOIN=pxc_node
                - XTRABACKUP_PASSWORD=1q2w3e4r
            volumes:
                - /etc/percona.d/my.cnf:/etc/my.cnf
    
        percona-xtradb-server2:
            depends_on: 
              - percona-xtradb-cluster
            container_name: pxc_node2
            image: 'percona/percona-xtradb-cluster:5.7'
            environment:
                - MYSQL_ROOT_PASSWORD=root
                - CLUSTER_NAME=pxc-cluster
                - XTRABACKUP_PASSWORD=1q2w3e4r
                - CLUSTER_JOIN=pxc_node
            volumes:
                - /etc/percona.d/my.cnf:/etc/my.cnf
    
    
    

    注意 depends 字段 - 它们很重要 - see documentation. 并且看到CLUSTER_JOIN=pxc_node出席,他们指出要加入哪个服务器

    【讨论】:

    • 我在多主机、3 个服务器(3 个节点)中运行它
    • 使用 docker-compose.yml 是不可能实现的,因为它的目标是仅工作于单个 docker 主机。我认为您需要考虑使用 docker-swarm - docs.docker.com/engine/swarm/swarm-tutorial,因为它允许使用几乎相同的 docker-compose yml 文件在不同的服务器上进行部署
    猜你喜欢
    • 2018-12-31
    • 1970-01-01
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 2013-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多