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在从节点上新建了一张表,发现数据也是同步的,说明我们集群搭建成功了。。。
到此就结束了哟!!!
刚毕业小白,不喜可喷!!