使用MyCat管理MySQL集群

大家在看这篇文章之前,博主建议大家先看我前一篇文章,也算是对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文章的链接为:

mysql集群读写分离与主从同步原理-CSDN博客

搭建双主四从的MySQL集群-CSDN博客

<?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设置成功啦。

  • 27
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值