# 安装 MyCat
没有官方的 MyCat 镜像,第三方也没有比较出名的,所以我们自己在 Java 容器里面安装
没有数据库中间件的年代:通常把数据切分规则记录在数据表,然后通过查询数据表得知,查询的数据保存在什么 MySQL 节点。
比如什么类型的商品被切分存储在哪一个节点上。在查询的时候,需要先查询规则表,根据规则再去某一个节点上查找结果。
有了数据库中间件之后:中间件保存了水平切分的规则,直接可以切分和整合数据
当一个查询不带路由规则时,这个查询只能被路由到所有节点查询,然后把结果在中间件中汇聚起来返回,因为中间件不知道去哪台节点上找数据。
# 为什么选 MyCat?
MyCat 是给予 Java 语言的开源数据库中间件产品,相对于其他中间件产品,MyCat 的切分规则最多,功能最全。
数据库中间件产品并不会频繁更新升级,包括数据库的相关的产品也是一样,稳定胜于一切
# 下载 MyCat
1.6.6 已经撤版了,那么我们就选择 1.6.7 是最接近 1.6.6 的,这里我们下载 Mycat-server-1.6.7.1-release-20200209222254-linux.tar
# 安装 OpenJDK 镜像
前面我们学习时下载的是最小的 OpenJDK 14 的,MyCat 是基于 JDK 1.8 ,所以需要安装 OpenJDK 1.8
docker pull adoptopenjdk/openjdk8
docker tag adoptopenjdk/openjdk8 openjdk8
docker rmi adoptopenjdk/openjdk8
1
2
3
2
3
该镜像不是官方版的。
# 创建 Java 容器
创建 Java 容器,在数据卷放入 MyCat
# 这里不加 -it 容器不久就会被退出
docker run -d -it --name mycat1
-v mycat1:/root/server --privileged
--net=host # 这里使用的网络是宿主机的网络,不要写 swarm 网络,有可能会链接不上 mysql 节点
openjdk8
1
2
3
4
5
2
3
4
5
安装该容器
[root@study ~]# docker run -d -it --name mycat1 -v mycat1:/root/server --privileged --net=host openjdk8
5e16e59c7b29465eccdd570f92d84f61886bc03b14f1536d838064997715854a
1
2
2
MyCat 使用的端口有:
- 8066 :数据处理,执行的 SQL 等操作
- 9066:获取 MyCat 状态信息
防火墙先放行
firewall-cmd --zone=public --add-port=8066/tcp --permanent
firewall-cmd --zone=public --add-port=9066/tcp --permanent
firewall-cmd --reload
systemctl restart docker
1
2
3
4
2
3
4
重启之后,需要注意的是,前面讲到过的 PCX 集群的启动,可以去参考前面的笔记,启动后之后再继续
进入数据卷,把 MyCat 放入数据卷中
[root@study _data]# docker volume inspect mycat1
[
{
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/mycat1/_data",
"Name": "mycat1",
"Options": {},
"Scope": "local"
}
]
[root@study _data]# cd /var/lib/docker/volumes/mycat1/_data
# 这里上传看你用的是什么工具了,笔者这里用 rz 命令上传
[root@study _data]# tar -xvf Mycat.tar.gz
[root@study _data]# ls
mycat Mycat.tar.gz
# 进入容器,查看是否能看到 mycat 解压目录了
[root@study _data]# docker exec -it mycat1 bash
root@study:/# cd /root/server/
root@study:~/server# ls
mycat Mycat.tar.gz
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23