docker安装PXC的MySQL集群.docx
- 文档编号:14168923
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:17
- 大小:269.55KB
docker安装PXC的MySQL集群.docx
《docker安装PXC的MySQL集群.docx》由会员分享,可在线阅读,更多相关《docker安装PXC的MySQL集群.docx(17页珍藏版)》请在冰点文库上搜索。
docker安装PXC的MySQL集群
docker安装PXC的MySQL集群
一、MySQL集群安装环境
(一)操作系统
编号
软件名称
说明
1
Ubuntu16.04.6LTS
(内核:
4.4.0)
Linuxversion4.4.0-180-generic(buildd@lcy01-amd64-004)(gccversion5.4.020160609(Ubuntu5.4.0-6ubuntu1~16.04.12))#210-UbuntuSMPFriMay1517:
06:
15UTC2020
2
Docker18.06.1-ce
在unbuntu上面安装docker首先确保自己的linux内核是3.10以上的版本
3
percona-xtradb-cluster-5.7.22
选择一个较新的稳定版本。
(二)相关插件
1、socat插件用来监视DockerAPI(必须安装)
socat是一个十分强大的命令行工具,它允许你在几乎任何类型的两个数据通道之间中继数据,从而可以嗅探到两个数据通道的通信,进行分析。
可以把它看成是一个增强版本的netcat。
安装指令:
(1)debian/ubuntu系统安装指令
aitalk@luo:
~$sudoapt-getinstallsocat
(2)centos/redhat系统安装指令
aitalk@luo:
~$sudoyuminstall-ysocat
二、安装PerconaXtraDBCluster
(一)docker下载镜像
1、通过docker拉取MySQL
aitalk@luo:
~$sudodockerpullpercona/percona-xtradb-cluster:
5.7.22
未指定版本号,下载默认是lastes版本,这里指定版本号:
dockerpullpercona/percona-xtradb-cluster:
5.7.22
2、查看MySQL镜像
aitalk@luo:
~$sudodockerimages
(二)配置percona-xtradb-cluster相关环境
1、创建自定义网络:
(设置固定IP)
root@luo:
~#dockernetworkcreate--subnet=172.19.0.0/16pxc-mysql-network
2、创建Docker卷
通常我们通过docker的目录映射机制将业务数据存储到我们的宿主机上。
但是PXC集群技术比较特殊,如果为PXC集群使用了docker的目录映射技术,PXC会闪退,因此要采用另外一种目录映射技术,即使用docker卷。
(1)MySQL配置文件目录
aitalk@luo:
~$sudodockervolumecreatev1-etc
(2)MySQL数据文件目录
aitalk@luo:
~$sudodockervolumecreatev1-data
(3)MySQL日志文件目录
aitalk@luo:
~$sudodockervolumecreatev1-logs
2、查看Docker卷
aitalk@luo:
~$sudodockervolumels
3、查看Docker卷映射目录
aitalk@luo:
~$sudodockervolumeinspectv1-etc
(三)创建percona-xtradb-cluster容器
1、执行创建Docke容器命令
aitalk@luo:
~$sudodockerrun-itd\
-p3326:
3306\
--name=my-node1\
-eMYSQL_ROOT_PASSWORD=123456\
-eXTRABACKUP_PASSWORD=123456\
-eCLUSTER_NAME=aitalk-pcx\
--net=pxc-mysql-network\
--ip172.19.0.2\
-vv1-etc:
/etc/mysql\
-vv1-data:
/var/lib/mysql\
-vv1-logs:
/var/log/mysql\
--privileged\
-ddocker.io/percona/percona-xtradb-cluster:
5.7.22
2、执行命令截图
3、命令参数说明
-p:
映射本地端口3326。
--name:
指定运行之后的容器的名称为my-node1。
--privileged:
指定了当前容器是否真正的具有root权限,所谓的root权限是指具有宿主机的root权限,而不仅仅只是在容器内部有root权限。
-e:
指定环境变量,容器中可以使用该环境变量。
-eCLUSTER_NAME:
指定集群名称为aitalk-pcx
-v:
为容器挂载目录,比如:
V1-data:
/var/lib/mysql
前者为数宿主机目录,后者为容器内目录。
-d:
后台运行容器,并返回容器ID。
-eMYSQL_ROOT_PASSWORD:
设置root密码为123456
-eXTRABACKUP_PASSWORD:
集群之间同步的密码为123456
--character-set-server:
设置数据库编码为uft8或utf8mb4。
--collation-server:
设置默认排序规则为utf8_unicode_ci
–net:
容器分到的内部网段
–ip:
容器分到的ip地址
4、查看新创建容器
aitalk@luo:
~$sudodockerps-a
5、查看容器里的详细信息
aitalk@luo:
~$sudodockerinspectmy-node1
(四)创建MySQL支持远程连接
1、登录MySQL
aitalk@luo:
~$sudomysql-h172.19.0.2-uroot-p123456
2、查看账号
mysql>usemysql;
mysql>select*fromuser;
注:
红框账号必须有,要不数据库安装失败。
3、登录进入新创建容器
aitalk@luo:
~$sudodockerexec-itmy-node1/bin/bash
4、登录MySQL数据库
mysql@ca579809f4e5:
/$mysql-uroot
5、创建支持远程连接的root账号及分配权限
mysql>CREATEUSER'root'@'%'IDENTIFIEDBY'123456';
mysql>grantallprivilegeson*.*to'root'@'%'identifiedby'123456';
mysql>flushprivileges;
6、退出MySQL和容器
7、测试登录MySQL
aitalk@luo:
~$mysql-h127.0.0.1-uroot-p123456-P3326
或:
aitalk@luo:
~$mysql-h172.19.0.2-uroot-p123456-P3326
三、创建MySQL集群
参考安装PerconaXtraDBCluster的“
(二)配置percona-xtradb-cluster相关环境”、“(三)创建percona-xtradb-cluster容器”和“(四)创建MySQL支持远程连接”创建PerconaXtraDBCluster集群的my-node2和my-node3的Docke容器。
特别说明:
PerconaXtraDBCluster创建集群至少3台MySQL服务。
(一)创建my-node2节点
1、创建Docker卷
(1)MySQL配置文件目录
aitalk@luo:
~$sudodockervolumecreatev2-etc
(2)MySQL数据文件目录
aitalk@luo:
~$sudodockervolumecreatev2-data
(3)MySQL日志文件目录
aitalk@luo:
~$sudodockervolumecreatev2-logs
(4)查看docker卷
aitalk@luo:
~$sudodockervolumels
2、执行创建Docke容器命令
aitalk@luo:
~$sudodockerrun-itd\
-p3327:
3306\
--name=my-node2\
-eMYSQL_ROOT_PASSWORD=123456\
-eXTRABACKUP_PASSWORD=123456\
-eCLUSTER_NAME=aitalk-pcx\
--net=pxc-mysql-network\
--ip172.19.0.3\
-vv2-etc:
/etc/mysql\
-vv2-data:
/var/lib/mysql\
-vv2-logs:
/var/log/mysql\
-eCLUSTER_JOIN=my-node1\
--privileged\
-ddocker.io/percona/percona-xtradb-cluster:
5.7.22
3、查看新创建容器
aitalk@luo:
~$sudodockerps-a
4、测试登录MySQL
aitalk@luo:
~$mysql-h172.19.0.3-uroot-p123456
(二)创建my-node3节点
1、创建Docker卷
(1)MySQL配置文件目录
aitalk@luo:
~$sudodockervolumecreatev3-etc
(2)MySQL数据文件目录
aitalk@luo:
~$sudodockervolumecreatev3-data
(3)MySQL日志文件目录
aitalk@luo:
~$sudodockervolumecreatev3-logs
(3)查看Docker卷
aitalk@luo:
~$sudodockervolumels
2、执行创建Docke容器命令
aitalk@luo:
~$sudodockerrun-itd\
-p3328:
3306\
--name=my-node3\
-eMYSQL_ROOT_PASSWORD=123456\
-eXTRABACKUP_PASSWORD=123456\
-eCLUSTER_NAME=aitalk-pcx\
--net=pxc-mysql-network\
--ip172.19.0.4\
-vv3-etc:
/etc/mysql\
-vv3-data:
/var/lib/mysql\
-vv3-logs:
/var/log/mysql\
-eCLUSTER_JOIN=my-node1\
--privileged\
-ddocker.io/percona/percona-xtradb-cluster:
5.7.22
3、查看新创建容器
aitalk@luo:
~$sudodockerps-a
4、测试登录MySQL
aitalk@luo:
~$mysql-h172.19.0.4-uroot-p123456
四、验证安装
(一)查看集群节点数量
1、查看集群节点数量
mysql>showstatuslike'wsrep_cluster_size';
Perfect(完美),正是创建了3个节点。
2、确认启动成功状态
mysql>showstatuslike'wsrep%';
(二)3个节点分别建表插入数据,查看复制情况
1、my-node1节点创建数据表及插入数据
aitalk@luo:
~$mysql-h172.19.0.2-uroot-p123456
mysql>CREATETABLE`pxc-test`.`t_user`(`id`INT(10)NOTNULLAUTO_INCREMENTCOMMENT'用户主键',`user_name`CHAR(32)NOTNULLCOMMENT'用户名',`password`CHAR(32)NOTNULLCOMMENT'密码',PRIMARYKEY(`id`));
mysql>USE`pxc-test`;
mysql>INSERTINTO`pxc-test`.`t_user`(`user_name`,`password`)VALUES('t1',MD5('1'));
mysql>INSERTINTO`pxc-test`.`t_user`(`user_name`,`password`)VALUES('t2',MD5('2'));
2、my-node2节点创建数据表及插入数据
aitalk@luo:
~$mysql-h172.19.0.3-uroot-p123456
mysql>USE`pxc-test`;
mysql>INSERTINTO`pxc-test`.`t_user`(`user_name`,`password`)VALUES('t3',MD5('3'));
mysql>INSERTINTO`pxc-test`.`t_user`(`user_name`,`password`)VALUES('t4',MD5('4'));
3、my-node3节点创建数据表及插入数据
aitalk@luo:
~$mysql-h172.19.0.4-uroot-p123456
mysql>USE`pxc-test`;
mysql>INSERTINTO`pxc-test`.`t_user`(`user_name`,`password`)VALUES('t5',MD5('5'));
mysql>INSERTINTO`pxc-test`.`t_user`(`user_name`,`password`)VALUES('t6',MD5('6'));
3、三个节点查询数据是否一致
(1)my-node1查询
aitalk@luo:
~$mysql-h172.19.0.2-uroot-p123456
mysql>SELECT*FROM`pxc-test`.`t_user`;
(2)my-node2查询
aitalk@luo:
~$mysql-h172.19.0.3-uroot-p123456
mysql>SELECT*FROM`pxc-test`.`t_user`;
(3)my-node3查询
aitalk@luo:
~$mysql-h172.19.0.4-uroot-p123456
mysql>SELECT*FROM`pxc-test`.`t_user`;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- docker 安装 PXC MySQL 集群