Mycat部署及单库分表

时间:2025-03-27 18:05:31

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的简单使用及单库分表的简单实现.

相关文章