一、MySQL高可用集群搭建
MySQL集群搭建在实际项目中是非常必须的,接下来我们来学习通过PXC【Percona XtraDB Cluster】来实现强一致性数据库集群搭建。
1.1 MySQL集群搭建
1.1.1 中央仓库查找相关镜像
docker search mysql
1.1.2 拉取镜像并查看镜像
docker pull percona/percona-xtradb-cluster:5.7.21
docker iamges
1.1.3 复制percona/percona-xtradb-cluster:5.7.21镜像并重命名镜像名字
docker tag percona/percona-xtradb-cluster:5.7.21 pxc
1.1.4 删除原来的镜像
docker rmi percona/percona-xtradb-cluster:5.7.21
1.1.5 创建单独的网段,给MySQL数据库集群使用
# 创建MySQL集群的指定网段
docker network create --subnet=172.19.0.0/24 mysql-network
# 查看网卡的信息情况
docker network inpsect mysql-network
# 删除网段
docker network rm mysql-network
1.1.6 容器持久化操作
方式一:提前创建指定volume数据卷,docker run命令运行的时候直接使用创建好的volume
# 创建 volume
docker volume create --name v1
docker volume create --name v2
docker volume create --name v3
# 删除volume
docker volume rm v1
# 查看详情
docker volume inspect v1
docker volume inspect v2
docker volume inspect v3
方式二:在docker run命令后面追加-v参数,启动的时候将提前创建好的目录挂载到容器的指定目录结构当中。这个地方我就不就行演示了,因为我们之前使用这个方式部署了很多的案例。具体可以参考以下地址:【Docker学习专栏,都帮你整理好了,选择你需要的呦,点我即可!】
1.1.7 搭建pxc集群
运行3个PXC容器命令参数说明:
参数 | 参数说明 |
---|---|
v1 | 提前创建的数据卷,挂载到容器node1节点的/var/lib/mysql目录中 |
v2 | 提前创建的数据卷,挂载到容器node2节点的/var/lib/mysql目录中 |
v3 | 提前创建的数据卷,挂载到容器node3节点的/var/lib/mysql目录中 |
MYSQL_ROOT_PASSWORD=root | 设置数据库登录的密码 |
CLUSTER_NAME PXC | 集群名字 |
XTRABACKUP_PASSWORD | 数据库同步需要用到的密码 |
–net=mysql-network | 指定的网卡 |
–ip 172.20.0.x | 指定的ip地址 |
CLUSTER_JOIN=node1 | 从节点加入到集群环境中 |
–privileged | 修改表的权限 |
创建第一个节点
docker run -d -p 3301:3306 -v v1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e CLUSTER_NAME=PXC -e EXTRABACKUP_PASSWROD=root --privileged --name=node1 --net=mysql-network --ip 172.19.0.6 pxc
创建第二个节点: 注意 -e CLUSTER_JOIN=node1
docker run -d -p 3302:3306 -v v2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e CLUSTER_NAME=PXC -e EXTRABACKUP_PASSWROD=root -e CLUSTER_JOIN=node1 --privileged --name=node2 --net=mysql-network --ip 172.19.0.7 pxc
创建第三个节点: 注意 -e CLUSTER_JOIN=node1
docker run -d -p 3303:3306 -v v3:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e CLUSTER_NAME=PXC -e EXTRABACKUP_PASSWROD=root -e CLUSTER_JOIN=node1 --privileged --name=node3 --net=mysql-network --ip 172.19.0.8 pxc
结果展示:
1.1.8 测试集群之间信息是否同步
进入node1容器,连接数据库
连接node3容器数据库
连接node3容器数据库
在node1中创建一个test数据库
在node2和node3中查看了主节点中node1中的数据库
还有更多的命令进行测试,同理,感兴趣的同学可以自行尝试。
好了,到这里【详细学习Docker部署搭建MySQL集群环境】结束了,更多内容持续创作中。
转载:https://blog.csdn.net/Coder_ljw/article/details/127532302
查看评论