PXC 集群的安装

一、PXC 集群的安装
PXC集群比较特殊,需要安装在 linux 或 Docker 之上。这里使用 Docker进行安装!

Docker的镜像仓库中包含了 PXC数据库的官方镜像,
地址:https://hub.docker.com/r/percona/percona-xtradb-cluster/
如下图所示: 

安装该镜像有两种方式: 
- docker pull percona/percona-xtradb-cluster 
- docker load < pxc.tar.gz路径

 

- docker pull docker.io/percona/percona-xtradb-cluster 

-docker load < /home/soft/pxc.tar.gz路径

docker images

修改这个镜像的名字

docker tag docker.io/percona/percona-xtradb-cluster  pxc

docker images

docker rmi docker.io/percona/percona-xtradb-cluster  

docker images
二、创建内部网络
出于安全考虑,创建出来的 PXC集群不要直接对接Docker以外的网络,因此要给PXC集群实例创建 Docker内部网络。Docker内部网段外部无法直接访问,我们可通过 docker端口映射技术将端口对外开发。

docker 内部网络操作 ( 内部默认网段为 172.17.0.XX ): 
docker network create 网络名
docker network inspect 网络名 : 查看某网络详细信息
docker network rm 网络名 
例如: 
docker network create –subnet=172.18.0.0/24 net1 :net1为网段名 
docker network inspect net1 
docker network rm net1
三、创建 Docker卷
通常我们通过 docker的目录映射机制将业务数据存储到我们的宿主机上。但是PXC集群技术比较特殊,如果为PXC集群使用了docker的目录映射技术,PXC会闪退,因此要采用另外一种目录映射技术,即使用 docker卷。
docker卷的常用操作: 
docker volume create –name v1
docker inspect v1 : 查看卷的信息,知道卷在哪。
docker volume rm v1
创建的卷v1 是可以直接在宿主机上看到目录的。将这个卷映射给容器,此时启动容器,这样PXC容器启动就能将数据映射到卷中,我们通过宿主机中也能看到映射出来的数据。

四、创建PXC容器
只需要向PXC镜像传入运行参数就能创建出PXC容器
创建PXC 命令如下:

docker run -d -p 3306:3306 
-v v1:/var/lib/mysql 
-e MYSQL_ROOT_PASSWORD=abc123456 
-e CLUSTER_NAME=PXC 
-e XTRABACKUP_PASSWORD=abc123456 
–privileged –name=node1 –net=net1 –ip 172.18.0.2 pxc 
命令解释: 
-d 代表后台运行 
-v 表示 v1卷映射到docker的mysql中,mysql路径为 /var/lib/mysql 
MYSQL_ROOT_PASSWORD=abc123456 表示mysql 的密码,用户名默认为root 
CLUSTER_NAME=PXC 表示集群的名字 
XTRABACKUP_PASSWORD=abc123456 集群之间同步的密码 
–privileged 为权限 
–name :给创建出来的容器起一个名字 
–net : 容器分到的内部网段 
–ip : 容器分到的 ip地址 
pxc 为镜像名

假设我们要创建3个数据库的集群

docker volume create --name v1
docker volume create --name v2
docker volume create --name v3
/** 
* 集群中数据库端口映射不一样、docker卷不一样、
* 集群中各个容器名不一样、ip地址不一样
* 注意修改这四个地方和 创建其他容器时添加:-e CLUSTER_JOIN=node1。
*/
docker run -d -p 3306:3306 -v v1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 --privileged --name=node1 --net=net1 --ip 172.18.0.2 pxc
// 多了一个加入集群的命令
docker run -d -p 3307:3306 -v v2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -e CLUSTER_JOIN=node1 --privileged --name=node2 --net=net1 --ip 172.18.0.3 pxc 

docker run -d -p 3308:3306 -v v3:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -e CLUSTER_JOIN=node1 --privileged --name=node3 --net=net1 --ip 172.18.0.4 pxc
1
2
3
4
5
6
7
8
9
10
11
12
13
切记:容器的创建是很快的,但是数据库创建比较慢(2分钟以上),一定要确保第一个容器的mysql 初始化好了在创建其他容器,其他容器需要集群到第一个容器的mysql上。可以通过mysql客户端连接来判断是否初始化好了。 
数据库客户端连接时,主机为公网ip,端口为映射到宿主机上的端口,用户名root,密码为在 run容器时所指定的那个。

此时通过 docker ps -a 查看后台运行的容器即可。

查看日志: 
docker logs -f [Container Id] 
or 
docker logs -f [Container Name]
--------------------- 
作者:慎独-杨 
来源:CSDN 
原文:https://blog.csdn.net/annotation_yang/article/details/80863130?utm_source=copy 
版权声明:本文为博主原创文章,转载请附上博文链接!

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值