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实现的分库分表+读写分离已经实现!
若有疑问可留言公众号
本文介绍了如何利用mycat完成MySQL的分库分表操作及读写分离。首先,完成了mycat的安装,接着修改了配置文件server.xml、schema.xml和rule.xml。启动mycat并确认其运行状态。接着在主节点创建数据库和表,并通过mycat插入数据,验证了数据的正确分发和读写分离效果。
3398

被折叠的 条评论
为什么被折叠?



