docker安装PXC的MySQL集群
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
docker安装PXC的MySQL集群
一、MySQL集群安装环境
(一)操作系统
(二)相关插件
1、socat插件用来监视Docker API(必须安装)
socat是一个十分强大的命令行工具,它允许你在几乎任何类型的两个数据通道之间中继数据,从而可以嗅探到两个数据通道的通信,进行分析。可以把它看成是一个增强版本的netcat。
安装指令:
(1)debian/ubuntu系统安装指令
aitalk@luo:~$ sudo apt-get install socat
(2)centos/redhat系统安装指令
aitalk@luo:~$ sudo yum install -y socat
二、安装Percona XtraDB Cluster
(一)docker下载镜像
1、通过docker拉取MySQL
aitalk@luo:~$ sudo docker pull percona/percona-xtradb-cluster:5.7.22
未指定版本号,下载默认是lastes版本,这里指定版本号:docker pull percona/percona-xtradb-cluster:5.7.22
2、查看MySQL镜像
aitalk@luo:~$ sudo docker images
(二)配置percona-xtradb-cluster相关环境
1、创建自定义网络:(设置固定IP)
root@luo:~# docker network create --subnet=172.19.0.0/16 pxc-mysql-network
2、创建 Docker卷
通常我们通过 docker的目录映射机制将业务数据存储到我们的宿主机上。但是PXC集群技术比较特殊,如果为PXC 集群使用了docker的目录映射技术,PXC会闪退,因此要采用另外一种目录映射技术,即使用 docker卷。
(1)MySQL配置文件目录
aitalk@luo:~$ sudo docker volume create v1-etc (2)MySQL数据文件目录
aitalk@luo:~$ sudo docker volume create v1-data (3)MySQL日志文件目录
aitalk@luo:~$ sudo docker volume create v1-logs
2、查看 Docker卷
aitalk@luo:~$ sudo docker volume ls
3、查看 Docker卷映射目录
aitalk@luo:~$ sudo docker volume inspect v1-etc
(三)创建percona-xtradb-cluster容器
1、执行创建 Docke容器命令
aitalk@luo:~$ sudo docker run -itd \
-p 3326:3306 \
--name=my-node1 \
-e MYSQL_ROOT_PASSWORD=123456 \
-e XTRABACKUP_PASSWORD=123456 \
-e CLUSTER_NAME=aitalk-pcx \
--net=pxc-mysql-network \
--ip 172.19.0.2 \
-v v1-etc:/etc/mysql \
-v v1-data:/var/lib/mysql \
-v v1-logs:/var/log/mysql \
--privileged \
-d
docker.io/percona/percona-xtradb-cluster:5.7.22
2、执行命令截图
3、命令参数说明
-p: 映射本地端口3326。
--name:指定运行之后的容器的名称为my-node1。
--privileged:指定了当前容器是否真正的具有root权限,所谓的root权限是指具有宿主机的root权限,而不仅仅只是在容器内部有root权限。
-e:指定环境变量,容器中可以使用该环境变量。
-e CLUSTER_NAME :指定集群名称为aitalk-pcx
-v:为容器挂载目录,比如:
V1-data:/var/lib/mysql
前者为数宿主机目录,后者为容器内目录。
-d:后台运行容器,并返回容器ID。
-e MYSQL_ROOT_PASSWORD:设置root密码为123456
-e XTRABACKUP_PASSWORD:集群之间同步的密码为123456
--character-set-server:设置数据库编码为uft8或utf8mb4。
--collation-server:设置默认排序规则为utf8_unicode_ci
–net :容器分到的内部网段
–ip : 容器分到的 ip地址
4、查看新创建容器
aitalk@luo:~$ sudo docker ps -a
5、查看容器里的详细信息
aitalk@luo:~$ sudo docker inspect my-node1
(四)创建MySQL支持远程连接
1、登录MySQL
aitalk@luo:~$ sudo mysql -h 172.19.0.2 -u root -p123456
2、查看账号
mysql> use mysql;
mysql> select * from user;
注:红框账号必须有,要不数据库安装失败。
3、登录进入新创建容器
aitalk@luo:~$ sudo docker exec -it my-node1 /bin/bash