I need some help. How can I bootstrap a Percona XtraDB Cluster on a docker-compose as 1st node?
I have this my.cnf file
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
and 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
run sudo docker-compose up -d
according to manual, it seems you should start 2nd and 3rd servers only after 1st server is started, so, with your docker compose it should be something like this
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
Notice depends
fields – they are important – see documentation.
And see CLUSTER_JOIN=pxc_node
present, they indicate what server to join