mycat完成分库分表【水平】

1、前提

需要完成mycat的安装:https://mp.weixin.qq.com/s/7d05OmBLcK34DXjL2lm4uA

2、修改配置文件

查看文件内容:mycat\conf\server.xml

    <user name="root" defaultAccount="true">        <property name="password">123456</property>        <property name="schemas">TESTDB</property>                <!-- 表级 DML 权限设置 -->        <!--                <privileges check="false">            <schema name="TESTDB" dml="0110" >                <table name="tb01" dml="0000"></table>                <table name="tb02" dml="1111"></table>            </schema>        </privileges>                -->    </user>     <user name="user">        <property name="password">user</property>        <property name="schemas">TESTDB</property>        <property name="readOnly">true</property>    </user>

即有两个账号,一个是root/123456,另外一个是user/user,对应的数据库实例就是TESTDB,而这个TESTDB就是真正的mysql实例映射而成的。

我将名字改为了cool,所以现在看到的是cool的名字

继续修改mycat\conf\schema.xml

<?xml version="1.0"?><!DOCTYPE mycat:schema SYSTEM "schema.dtd"><mycat:schema xmlns:mycat="http://io.mycat/">  <schema name="cool" checkSQLschema="true" sqlMaxLimit="100">    <table name="t1" primaryKey="id" dataNode="dn1,dn2" rule="rule1" />   </schema>    <dataNode name="dn1" dataHost="db1" database="db01" />    <dataNode name="dn2" dataHost="db1" database="db02" />  <dataHost name="db1" maxCon="1000" minCon="10" balance="0"        writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">    <heartbeat>select user()</heartbeat>    <writeHost host="127.16.10.51" url="172.16.10.51:3306" user="root"      password="root">      <readHost host="172.16.10.52" url="172.16.10.52:3306" user="root" password="root" />    </writeHost>  </dataHost>   </mycat:schema>

修改mycat\conf\rule.xml

  <tableRule name="rule1">    <rule>      <columns>id</columns>      <algorithm>mod-long</algorithm>    </rule>  </tableRule>    <function name="mod-long" class="io.mycat.route.function.PartitionByMod">    <!-- how many data nodes -->    <property name="count">2</property>  </function>

启动mycat​:

./mycat restart

查看启动状态​:

ps -ef |grep mycat

启动成功​!

然后开始在自己的主节点创建数据库和表​:

create database db01;use db01;create table t1(id int,name varchar(20));create database db02;use db02;create table t1(id int,name varchar(20));

然后登录mycat数据库​:

登录后看到表结构​:

然后我们通过mycat插入几条数据​:

insert into t1(id,name) values(1,'ali');insert into t1(id,name) values(2,'elvis');insert into t1(id,name) values(2,'JackRen');insert into t1(id,name) values(3,'nihao');

mycat中数据​:

然后我们登录主节点数据库​查看数据:

然后去从数据库查看​:

和主数据库是一样的,可见我们mycat实现的分库分表+读写分离已经实现!

​若有疑问可留言公众号

发布了86 篇原创文章 · 获赞 36 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/JackRen_Developer/article/details/103223349