docker pxc5.7.21集群搭建

1.首先更新linux软件包

yum -y update

2.安装docker虚拟机

yum install -y docker

3.建议关闭SElinux

使用vi /etc/selinux/config 进入配置文件。把SELINUX=enforcing改成SELINUX=disabled。然后reboot重启系统。

vi /etc/selinux/config

在这里插入图片描述

4.配置docker镜像下载加速器

在linux系统命令行中输入如下代码,然后执行。

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

输入如下命令修改docker文件,把逗号去掉,使加速器生效:

vi /etc/docker/daemon.json

在这里插入图片描述

5 拉取pxc5.7.21镜像

docker pull percona/percona-xtradb-cluster:5.7.21

重命名镜像

docker tag percona/percona-xtradb-cluster:5.7.21 pxc5721

通过 docker images可以看到我们有了哪些镜像
删除镜像命令 docker rmi 镜像名称
在这里插入图片描述

6.创建虚拟网,这一步是提高安全性

创建

docker network create --subnet=172.18.0.0/24   net1

在这里插入图片描述

7.创建数据卷

在这里插入图片描述
在这里插入图片描述

8.通过镜像启动容器(启动主节点)

docker run -di -p 3306:3306 -v v1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=cluster1 -e XTRABACKUP_PASSWORD=123456 --privileged=true --name=node1 --net=net1 --ip 172.18.0.2 pxc5721

通过docker exec -it node1 bash命令进入容器交互界面
登录mysql -uroot -p123456,修改用户权限,允许远程登录,%代表任何ip地址都可以远程登录。

use mysql;
update user set host='%' where user='root';

在这里插入图片描述刷新:flush privileges;
在这里插入图片描述
执行exit退出mysql。

开放防火墙端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=3307/tcp --permanent
firewall-cmd --zone=public --add-port=3308/tcp --permanent
firewall-cmd --zone=public --add-port=3309/tcp --permanent
firewall-cmd --zone=public --add-port=3310/tcp --permanent
firewall-cmd --reload

9.使用数据库可视化工具连接测试,我这里用的是navicat

在这里插入图片描述
在这里插入图片描述
测试连接成功,说明我们主节点启动OK了

10.启动从节点

node2

docker run -di -p 3307:3306 -v v2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=cluster1 -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=node1 --privileged=true --name=node2 --net=net1 --ip 172.18.0.3 pxc5721

node3

docker run -di -p 3308:3306 -v v3:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=cluster1 -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=node1 --privileged=true --name=node3 --net=net1 --ip 172.18.0.4 pxc5721

node4

docker run -di -p 3309:3306 -v v4:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=cluster1 -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=node1 --privileged=true --name=node4 --net=net1 --ip 172.18.0.5 pxc5721

node5

docker run -di -p 3310:3306 -v v5:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=cluster1 -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=node1 --privileged=true --name=node5 --net=net1 --ip 172.18.0.6 pxc5721

然后用navicat分别连接节点端口 3307/3308/3309/3310
在这里插入图片描述
5个节点对应五个连接。

11.测试

11.1在主节点DB1中新建一个test数据库,看看数据有没有同步到其他节点
在这里插入图片描述
在这里插入图片描述
11.2创建成功后,去刷新其他节点,如下图
在这里插入图片描述
11.3在从节点上新建了一张表,发现数据也是同步的,说明我们集群搭建成功了。。。
在这里插入图片描述
到此就结束了哟!!!
刚毕业小白,不喜可喷!!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值