1:下载mycat
下载地址:http://dl.mycat.org.cn/
下载后将文件解压
2:提前创建数据库跟表
我这里先创建了三个库,每个库中的表都是一样的,准备条件做好之后,接下来修改myat的配置文件以达到分库的效果
3:修改主要配置文件
server.xml
0
0
1
1
0
0
300
1
(?:(\s*next\s+value\s+for\s*MYCATSEQ_(\w+))(,|\)|\s)*)+
false
io.mycat.route.sequence.handler.HttpIncrSequenceHandler
0
0
0
64k
1k
0
384m
false
false
true
0
123456
radar
radar
123456
radar
true
radar
主要修改标签
name:连接mycat时的用户名
password:连接mycat时的密码
schemas:mycat逻辑库的名称
schema.xml
select user()
schema:
-- name:逻辑库名称,需要与server.xml中标签下的schemas对应
table:
--name:数据库中的表名
--dateNode: 分片的节点
--rule:分片规则 根据 id 进行十进制求模预算,相比固定分片 hash
dataNode:
--name:数据节点的名字(禁止重复,对应schema里的dataNode对应的名)
--dataHost:跟物理库对应的名称(datahost.name对应)
--database:物理数据库名(物理库中的真是数据库名称,我这里配置的就是之前提前创建好的三个库)
writeHost:
--name:自定义名称(对应dataNode里的dataHost)
--url:连接数据库地址
--name:连接数据库地址的用户名
--password:连接数据库地址的密码
rule.xml
rule.xml
里面就定义了我们对表进行拆分所涉及到的规则定义。我们可以灵活的对表使用不同的分片算法,或者对表使用相同的算法但具体的参数不同。这个文件里面主要有tableRule和function这两个标签。在具体使用过程中可以按照需求添加tableRule和function。
4:连接mycat
连接成功,查看mycat
radar :我们在schema.xml中定义好的逻辑数据库名
student,t_respire: 我们在schema.xml中定义好的逻辑数据库中的表
5:springboot整合mycat
修改mysql连接地址,更换为mycat
使用esaycode插件快速生成代码,这里直接略过
使用postman插入三条数据
插入三条id不同的数据,我这里已经插入了id={1,2,3}的数据,查看mycat与分片数据
查看三个分片数据库中的数据
这里mycat已经会根据我们所选择的分片策略自动将数据插入不同的库中