MYSQL PXC 集群

霄
2024-12-12 / 0 评论 / 73 阅读 / 正在检测是否收录...

//创建网段

docker network create --subnet=172.18.5.0/24 pxcNet0

docker volume create --name pxcData1

docker volume create --name pxcData2

docker volume create --name pxcData3

docker volume create --name pxcData4

docker volume create --name pxcData5

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=AOOB.Pxc.db -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=AOOB.Pxc.db -v pxcData1:/var/lib/mysql -v pxcBackup:/data --privileged --name=node1 --net=pxcNet0 --ip 172.30.0.3 pxc

docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=AOOB.Pxc.db -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=AOOB.Pxc.db -e CLUSTER_JOIN=node1 -v pxcData2:/var/lib/mysql -v pxcBackup:/data --privileged --name=node2 --net=pxcNet0 --ip 172.30.0.4 pxc

docker run -d -p 3308:3306 -e MYSQL_ROOT_PASSWORD=AOOB.Pxc.db -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=AOOB.Pxc.db -e CLUSTER_JOIN=node1 -v pxcData3:/var/lib/mysql -v pxcBackup:/data --privileged --name=node3 --net=pxcNet0 --ip 172.30.0.5 pxc

docker run -d -p 3309:3306 -e MYSQL_ROOT_PASSWORD=AOOB.Pxc.db -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=AOOB.Pxc.db -e CLUSTER_JOIN=node1 -v pxcData4:/var/lib/mysql -v pxcBackup:/data --privileged --name=node4 --net=pxcNet0 --ip 172.30.0.6 pxc

docker run -d -p 3310:3306 -e MYSQL_ROOT_PASSWORD=AOOB.Pxc.db -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=AOOB.Pxc.db -e CLUSTER_JOIN=node1 -v pxcData5:/var/lib/mysql -v pxcBackup:/data --privileged --name=node5 --net=pxcNet0 --ip 172.30.0.7 pxc

删除所有节点docker rm node1 node2 node3 node4 node 5和数据卷中的grastate.dat文件

rm -rf /var/lib/docker/volumes/pxcData1/_data/grastate.dat

rm -rf /var/lib/docker/volumes/pxcData2/_data/grastate.dat

rm -rf /var/lib/docker/volumes/pxcData3/_data/grastate.dat

rm -rf /var/lib/docker/volumes/pxcData4/_data/grastate.dat

rm -rf /var/lib/docker/volumes/pxcData5/_data/grastate.dat

docker stop node1 node2 node3 node4 node5

重新执行集群创建的命令即可,因为数据都在数据卷中,所有放心,集群重新启动都数据仍然都在

--》 容器全部初始化完毕后 --》停止全部节点容器--》去主节点node1数据卷复制全部 .pem 文件到其他节点数据卷 --》删除所有节点数据卷下面的grastate.dat --》 删除全部节点 --》重新初始化容器 --》 所有容器依次启动,启动其他容器先关闭之前启动的那个从节点,等所有容器跑过一边再运行其他的(依次运行!!!!!!!)

//所有节点无法启动 vim /var/lib/docker/volumes/pxcData2/_data/grastate.dat 改 node1 节点内的safe_to_bootstrap为 1表示引导节点

    这个值是用来判断是否是主节点,0表示非引导节点,-1表示引导节点(引导节点-最后关闭的节点)

直接通过docker start node1 或者任何一个节点是启动不了的,原因是集群之前的同步机制造成的,启动任何一个节点,该节点都会去其它节点同步数据,其它节点仍处于宕机状态,所以该节点启动失败,这也是pxc集群的强一致性的表现。

扫描二维码,在手机上阅读!
78

评论

博主关闭了当前页面的评论