大家在看这篇文章之前,博主建议大家先看我前一篇文章,也算是对MySQL集群有一个初步的了解:搭建双主四从的MySQL集群-CSDN博客
一、导入MyCat镜像
MyCat并不是数据库,它只是SQL语句的路由器而已。创建MyCat容器之前,我们先导入镜像文件。照例把镜像文件上传到/root
目录,然后用命令导入镜像文件。
我给大家在百度网盘准备了一个镜像,大家可以参考一下:
链接:https://pan.baidu.com/s/1Gu3CJs5duinPYaMZom1ZAg
提取码:huxh
docker load < mycat.tar.gz
二、设置MyCat配置文件
我给大家也提供了mycat配置文件压缩包,你从百度网盘下载下来然后解压,我们要修改里面的配置文件。这些配置文件我也是从MyCat官网提供的MyCat压缩包中提取出来,大家也可以提取。
mycat配置文件:
链接:https://pan.baidu.com/s/14vBA_M3tp5MhTcqN1FRcJA
提取码:o7jo
我们先修改server.xml
文件再修改schema.xml,主要配置的就是MyCat帐户的用户名和密码,以及默认的逻辑库。
接下来我们打开server.xml之后,我们把最下面的配置注释掉:
根据下图进行设置,密码和逻辑库名字自己都可以自己设置,我这里只是做一个展示:
我们mycat默认端口号是8066端口号,如果大家想要改变其他的端口号,我们把下图的地方拖出来,换另一个端口号,在这里,我们就使用默认的端口号。
我们保存完这个server.xml文件之后,我们打开schema.xml文件,接线来我们该对schema.xml文件进行更改:
我们打开schema.xml之后,把所有的文件全部删除掉,然后替换成下面的,博主对大家提一个建议,如果大家没有看我前两篇文章,在这里,大家一定是很疑问的,我那两篇MySQL文章的链接为:
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/"><schema name="his" checkSQLschema="true" sqlMaxLimit="100" randomDataNode="dn1">
<table name="tb_action" primaryKey="id" dataNode="dn1" type="global"/>
<table name="tb_customer" primaryKey="id" dataNode="dn1" type="global"/>
<table name="tb_dept" primaryKey="id" dataNode="dn1" type="global"/>
<table name="tb_goods" primaryKey="id" dataNode="dn1" type="global"/>
<table name="tb_module" primaryKey="id" dataNode="dn1" type="global"/>
<table name="tb_permission" primaryKey="id" dataNode="dn1" type="global"/>
<table name="tb_role" primaryKey="id" dataNode="dn1" type="global"/>
<table name="tb_user" primaryKey="id" dataNode="dn1" type="global"/>
<table name="tb_rule" primaryKey="id" dataNode="dn1" type="global"/>
<table name="tb_order" primaryKey="id" dataNode="dn1" type="global"/>
<table name="tb_appointment" primaryKey="id" dataNode="dn1" type="global"/>
<table name="tb_appointment_restriction" primaryKey="id" dataNode="dn1" type="global"/>
<table name="tb_system" primaryKey="id" dataNode="dn1" type="global"/>
<table name="tb_checkup_report" primaryKey="id" dataNode="dn1" type="global"/>
<table name="tb_customer_location" primaryKey="id" dataNode="dn1" type="global"/>
<table name="tb_flow_regulation" primaryKey="id" dataNode="dn1" type="global"/>
<table name="tb_customer_im" primaryKey="id" dataNode="dn1" type="global"/>
</schema><dataNode name="dn1" dataHost="ds_1" database="his" />
<dataHost name="ds_1" maxCon="1000" minCon="10" balance="1" writeType="0"
dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select 1</heartbeat>
<writeHost host="w1" url="172.18.0.2:3306" user="root" password="abc123456">
<readHost host="w1r1" url="172.18.0.3:3306" user="root" password="abc123456"/>
<readHost host="w1r2" url="172.18.0.4:3306" user="root" password="abc123456"/>
</writeHost>
<writeHost host="w2" url="172.18.0.5:3306" user="root" password="abc123456">
<readHost host="w2r1" url="172.18.0.6:3306" user="root" password="abc123456"/>
<readHost host="w2r2" url="172.18.0.7:3306" user="root" password="abc123456"/>
</writeHost>
</dataHost></mycat:schema>
在我上面这些配置文件呢,有很多大家不认识的,大家可以去参考mycat官方文档
三、创建MyCat容器
先创建/root/mycat/conf
目录,然后把MyCat所有配置文件上传到该目录中。接下来我们通过Docker命令,创建MyCat容器。由于MyCat是用Java语言开发的中间件程序,它运行的时候需要的内存空间比较大,所以我们规定MyCat容器使用内存的上限为2GB。注意这只是上限,不是初始就占用了2GB的内存空间。
docker run -it -d --name mycat -p 8066:8066 -p 9066:9066 \
--net mynet --ip 172.18.0.8 -m 2048m \
-v /root/mycat/conf:/opt/mycat/conf \
-v /root/mycat/logs:/opt/mycat/logs \
-e TZ=Asia/Shanghai --privileged=true \
mycat:1.6.7.4
我们配置好容器之后,我们需要打开Navicat进行测试:
我们再点击测试连接:
如果显示连接成功,就说明我们mycat设置成功啦。