手把手教你linux下使用mycat对mysql进行垂直分库

准备

  • 两台服务器并且安装mysql,不可以克隆mysql!
    1数据库:192.168.0.106
    2数据库:192.168.0.107

  • mycat一枚

简单的配置mycat

安装

安装详细
解压

tar -zxvf Mycat-server-1.6.7.1-linux.tar.gz

移动到/usr/local目录下

mv  mycat /usr/local

进入/usr/local/mycat/conf 目录

 cd /usr/local/mycat/conf 

配置分库

  • 首先修改server.xml
    server.xml 是mycat的配置文件。
    修不修改都行,就是登陆mycat需要的用户和密码
    在这里插入图片描述

  • 修改schema.xml
    schema.xml是用来配置数据库之间的关系,比如多主多从,分库分表啥的

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">

        <!--schema标签配置的是mycat的虚拟库,schema里面的DataNode配置的是默认数据库节点  -->
        <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">
                <!-- 需要分出来的表 name配置表名 dataNode是为这个表分配的数据库节点-->
                <table name="t_user" dataNode="dn2"></table>
        </schema>

        <!-- dataNode标签将mycat的数据库请求分发给指定的数据库,相当于请求转发这个样子  -->
        <dataNode name="dn1" dataHost="host1" database="testdb" />
        <dataNode name="dn2" dataHost="host2" database="testdb" />
        
        <!-- 第一个数据库的配置等待引用 -->
        <dataHost name="host1" maxCon="1000" minCon="10" balance="0"
                          writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
                <heartbeat>select user()</heartbeat>

                <!-- 数据库的访问配置 ip以及用户名密码 -->
                <writeHost host="hostM1" url="192.168.0.106:3306" user="root"  password="123456">
                </writeHost>
        </dataHost>
        <!-- 第二个数据库的配置等待引用 -->
        <dataHost name="host2" maxCon="1000" minCon="10" balance="0"
                          writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
                <heartbeat>select user()</heartbeat>
                <writeHost host="hostM1" url="192.168.0.107:3306" user="root"  password="123456">
                </writeHost>
        </dataHost>
</mycat:schema>

在服务器里创建真实库

在服务器里创建真实库testdb,testdb使我们在配置文件里指定的
在这里插入图片描述
两个数据库都要创建
106:
在这里插入图片描述

107:
在这里插入图片描述

启动

安装java-jdk:https://blog.csdn.net/qq_42094345/article/details/106954139

  1. 控制台启动 :去 mycat/bin 目录下执行 ./mycat console
  2. 后台启动 :去 mycat/bin 目录下 ./mycat start
    为了能第一时间看到启动日志,方便定位问题,我们选择1控制台启动。

成功会有提示【successfully】
在这里插入图片描述

登陆mycat

mysql -umycat -p123456 -h 192.168.0.106 -P 8066

使用mysql命令登陆
用户名和密码是schema.xml 的 标签里面配置的用户名和密码
在这里插入图片描述

登陆成功
在这里插入图片描述

测试是否成功

我们创建一张t_user表看是否会创建在107的数据库里就可以

在mycat操作台执行ddl:

-- 进入mycat虚拟库
use TESTDB;
-- 创建t_user的表并查看是否成功
 create table t_user(id int(11),name varchar(20));show tables;

创建成功:
在这里插入图片描述
接下来我们来看看106有没有这张表:
在这里插入图片描述
106没有是正确的因为我们把t_user的表分发到107上面了,纳闷门继续来看107有没有,如果107有则表示此次垂直分库成功:
在这里插入图片描述
107创建成功,本次垂直分库成功!

附:

下一篇会写水平分表如何做,一般项目中分布分表的规则就是垂直库+水平表,无非就是mycat配置了,想看的话请在我的分栏 - mycat学习笔记里找一下

如果有用请三联,不胜感激!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhopq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值