博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker搭建mysql集群
阅读量:5160 次
发布时间:2019-06-13

本文共 3197 字,大约阅读时间需要 10 分钟。

准备环境:

  1.一台centos7机器  ip地址:192.168.113.11

  2.pxc镜像

搭建步骤:

1.拉取或导入本地镜像

# 从docker hub上拉取docker pull percona/percona-xtradb-cluster# 或将镜像压缩包导入docker load <  /root/pxc.tar.gz

2.更改镜像名

# 更改一个短的、易记忆的镜像名docker tag percona/percona-xtradb-cluster pxc# 删除原有的、长的镜像名docker rmi percona/percona-xtradb-cluster

3.创建集群的内部网络

# 网段可以自定义docker network create --subnet= 172.18.0.0/24 net1# 查看网段信息docker network inspect net1

4.创建Docker卷

docker volume create v1#查看v1卷在宿主机的那个目录下docker volume inspect v1[    {        "CreatedAt": "2019-05-13T13:53:31+08:00",        "Driver": "local",        "Labels": {},        "Mountpoint": "/var/lib/docker/volumes/v1/_data",        "Name": "v1",        "Options": {},        "Scope": "local"    }]# 创建其他四个卷,每个卷对应一个pxc容器docker volume create v2docker volume create v3docker volume create v4docker volume create v5# 查看卷在宿主机的目录ls /var/lib/docker/volumes/

5.创建PXC容器

注意:容器创建是很快,但是容器内的mysql初始化很慢,需要等第一个容器的mysql初始化完成后,才创建后面的容器,不然后面创建的容器会闪退

# 创建第一个容器# --privileged表示最高权限# 设置一些环境变量,如mysql的root登陆密码、集群名、集群同步的密码# 创建完成后,等待几分钟,最好用mysql连接一下,成功后创建接下来的几个集群docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123qqq...A -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123qqq...A -v v1:/var/lib/mysql --privileged --name=node1 --net=net1 --ip 172.18.0.2 pxc# 创建第二个容器# CLUSTER_JOIN指定加入的集群的节点名# 因为是在同一台宿主机上创建的几个PXC容器,所以端口不能重复# 还有就是一些像卷组、节点名、ip地址需要变化docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123qqq...A -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123qqq...A -e CLUSTER_JOIN=node1 -v v2:/var/lib/mysql --privileged --name=node2 --net=net1 --ip 172.18.0.3 pxc# 创建第三个容器docker run -d -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123qqq...A -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123qqq...A -e CLUSTER_JOIN=node1 -v v3:/var/lib/mysql --privileged --name=node3 --net=net1 --ip 172.18.0.4 pxc# 创建第四个容器docker run -d -p 3309:3306 -e MYSQL_ROOT_PASSWORD=123qqq...A -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123qqq...A -e CLUSTER_JOIN=node1 -v v4:/var/lib/mysql --privileged --name=node4 --net=net1 --ip 172.18.0.5 pxc# 创建第五个容器docker run -d -p 3310:3306 -e MYSQL_ROOT_PASSWORD=123qqq...A -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123qqq...A -e CLUSTER_JOIN=node1 -v v5:/var/lib/mysql --privileged --name=node5 --net=net1 --ip 172.18.0.6 pxc

6.测试

# 连接第二个容器node2的mysql,并创建一个test数据库mysql -h 192.168.113.11 -P 3307 -uroot -pMySQL > create database test;# 连接第五个容器node5的mysql,查看是否同步mysql -h 192.168.113.11 -P 3310 -uroot -pMySQL > show databases;+--------------------+| Database           |+--------------------+| information_schema || mysql              || performance_schema || sys                || test               |+--------------------+# 连接第三个容器node3的mysql,创建在test数据库中创建一个student表mysql -h 192.168.113.11 -P 3308 -uroot -pMySQL > use test;MySQL > create table student(        -> id int primary key,        -> name varchar(200) not null);# 连接第四个容器node4的mysql,往student表中插入一条数据mysql -h 192.168.113.11 -P 3309 -uroot -pMySQL > use test;MySQL > insert into student values(1,'Scott');# 连接第一个容器node1的mysql,查看student表mysql -h 192.168.113.11 -P 3306 -uroot -pMySQL > select * from test.student;+----+-------+| id | name  |+----+-------+|  1 | scott |+----+-------+

 

转载于:https://www.cnblogs.com/luoposhanchenpingan/p/10856514.html

你可能感兴趣的文章
Java数组排序
查看>>
SpringBoot 使用 MyBatis 分页插件 PageHelper 进行分页查询
查看>>
《DSP using MATLAB》Problem 6.17
查看>>
微信公众平台开发实战Java版之如何网页授权获取用户基本信息
查看>>
beta阶段第一次scrum meeting
查看>>
一周TDD小结
查看>>
(三)建筑物多边形化简系列——去除冗余点
查看>>
Spring Boot Oauth2缓存UserDetails到Ehcache
查看>>
sizeof与strlen的用法
查看>>
2017 ICPCECPC 邀请赛 F,D,E, I 题解
查看>>
Linux 下常见目录及其功能
查看>>
python Termux Android 开发介绍
查看>>
开源框架中常用的php函数
查看>>
Java语法糖初探(三)--变长参数
查看>>
Liunx常用命令(Mile)
查看>>
nginx 的提升多个小文件访问的性能模块
查看>>
C#语言学习:变量的声明与初始化的范围(对比C++)
查看>>
D. Buy a Ticket(优先队列+dijkstra)
查看>>
set&map
查看>>
git解决一个电脑多用户情况(win7)
查看>>