Directorio de artículos
Preparación ambiental
Nombre del nodo | dirección IP |
---|---|
nodo1 | 192.168.130.20 |
nodo2 | 192.168.130.19 |
nodo2 | 192.168.130.21 |
/ etc / hosts (nodo1 、 nodo2 、 nodo3)
192.168.130.20 hello001
192.168.130.19 hello002
192.168.130.21 hello003
Configuración
Cree directorios de datos (nodo1, nodo2, nodo3)
mkdir -p /root/mysql-cluster/data && chmod 777 /root/mysql-cluster/data
El puerto de escucha predeterminado del nodo pxc:
3306: El número de puerto para servicios externos de la base de datos
4444: Solicitar SST, que funciona cuando se une un nuevo nodo
4567: Puerto para la comunicación entre los miembros del grupo
4568: Transmisión IST, el nodo está fuera de línea, funciona al reiniciar la unión
puesta en marcha
nodo1
docker rm -f mysql-pxc-node1
docker run -d --network=host --name=mysql-pxc-node1 \
-e MYSQL_ROOT_PASSWORD=hello \
-e CLUSTER_NAME=helloPXC \
-e XTRABACKUP_PASSWORD=hello123456 \
-e TZ=Asia/Shanghai \
-v /root/mysql-cluster/data:/var/lib/mysql \
percona/percona-xtradb-cluster:5.7.31
nodo2
docker rm -f mysql-pxc-node2
docker run -d --network=host --name=mysql-pxc-node2 \
-e MYSQL_ROOT_PASSWORD=hello \
-e CLUSTER_NAME=helloPXC \
-e CLUSTER_JOIN=192.168.130.20 \
-e XTRABACKUP_PASSWORD=hello123456 \
-e TZ=Asia/Shanghai \
-v /root/mysql-cluster/data:/var/lib/mysql \
percona/percona-xtradb-cluster:5.7.31
nodo3
docker rm -f mysql-pxc-node3
docker run -d --network=host --name=mysql-pxc-node3 \
-e MYSQL_ROOT_PASSWORD=hello \
-e CLUSTER_NAME=helloPXC \
-e CLUSTER_JOIN=192.168.130.20 \
-e XTRABACKUP_PASSWORD=hello123456 \
-e TZ=Asia/Shanghai \
-v /root/mysql-cluster/data:/var/lib/mysql \
percona/percona-xtradb-cluster:5.7.31
Ver el estado del clúster
docker exec -it mysql-pxc-node1 /usr/bin/mysql -uroot -phello
mysql> show status like 'wsrep%';
....
wsrep_incoming_addresses
...
wsrep_incoming_adddress si se han agregado todas las direcciones de nodo