Mycat部署及单库分表
- 引言
- Mycat部署
- 下载、解压
- 修改配置
- 启动
- 更改项目中数据库链接
- 单库分表
- 启动
- 更改项目中数据库链接
- 总结
引言
因公司业务需要,部分业务数据需要分表。考虑到分表后插入、查询不方便,在Mycat和Sharding之间抉择后,选择用Mycat作为数据库中间件来实现分表插入、关联查询操作。Mycat版本是Mycat-server-1.6.7.6-release-20210730131311-win。Mycat1.6.7.6下载地址
不仅要在项目中引入依赖,还要在项目中配置分表规则。需要改动项目代码。
在下载安装包后解压,修改、schema.xml、server.xml配置后,只需要在项目中更改下数据库连接,就可以通过Mycat中间件来实现分表。
Mycat部署
下载、解压
Mycat1.6.7.6下载地址
修改配置
是Mycat 服务器参数调整和用户授权的配置文件。
<user name="Mycat账号" defaultAccount="true">
<property name="password">Mycat密码</property>
<property name="schemas">逻辑库定义</property>
<property name="defaultSchema">逻辑库定义</property>
<!--No MyCAT Database selected 错误前会尝试使用该schema作为schema,不设置则为null,报错 -->
</user>
- 1
- 2
- 3
- 4
- 5
- 6
是逻辑库定义和表以及分片定义的配置文件。
<schema name="逻辑库定义" checkSQLschema="true" sqlMaxLimit="100">
<!-- <table name="user" primaryKey="user_id" dataNode="dn1" /> -->
<table name="逻辑表" primaryKey="主键" dataNode="dn1" />
</schema>
<dataNode name="dn1" dataHost="localhost1" database="真实数据库" />
<!--真正数据库连接地址-->
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM1" url="jdbc:mysql://ip:port" user="账号" password="密码" />
</dataHost>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
启动
点击bin文件下的startup_nowrap.bat启动.连接mycat端口 serverPort 默认为:8066
更改项目中数据库链接
url: jdbc:mysql://ip:port/逻辑库?characterEncoding=utf8&useUnicode=true&useSSL=false&serverTimezone=UTC
username: Mycat账号
password: Mycat密码
- 1
- 2
- 3
单库分表
是逻辑库定义和表以及分片定义的配置文件。
<schema name="逻辑库定义" checkSQLschema="true" sqlMaxLimit="100">
<!-- 分表 -->
<table name="逻辑表"" primaryKey="主键" subTables="逻辑表"_$1-10" dataNode="dn1" rule="fk-pro-file" />
</schema>
- 1
- 2
- 3
- 4
subTables=“逻辑表”_$1-10" 是分表的个数,分十个表.
rule=“fk-pro-file”,分表规则
是分片规则的配置文件,分片规则的具体一些参数信息单独存放为文件。
<tableRule name="fk-pro-file">
<rule>
<columns>分表ID(以那个字段来作为分依据)</columns>
<!-- mod-long 分表算法,取模 -->
<algorithm>mod-long</algorithm>
</rule>
</tableRule>
<function name="fk-pro-file" class="">
<!-- how many data nodes -->
<property name="count">分表个数</property>
</function>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
可以自定义分表规则.
启动
点击bin文件下的startup_nowrap.bat启动.连接mycat端口 serverPort 默认为:8066
更改项目中数据库链接
url: jdbc:mysql://ip:port/逻辑库?characterEncoding=utf8&useUnicode=true&useSSL=false&serverTimezone=UTC
username: Mycat账号
password: Mycat密码
- 1
- 2
- 3
总结
本文是对Mycat的简单使用及单库分表的简单实现.