# mycat
**Repository Path**: longxian435/mycat
## Basic Information
- **Project Name**: mycat
- **Description**: 利用mycat做分表分库,具体实现增加对mysql的吞吐量
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2020-10-25
- **Last Updated**: 2024-12-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# mycat
#### 介绍
利用mycat做分表分库,具体实现增加对mysql的吞吐量
#### 软件架构
软件架构说明
简单的项目中利用mycat流程图

#### 安装教程
- 1.我这里用mycat 1.6.release版本。
- 2.需要jdk1.7及以上版本。(可以是用低版本的,但是mycat的版本相对的需要降低,可以看官网 http://www.mycat.io/)。
- 3.我这里于springboot集成的。
- 4.是在linux服务器搭建的
#### 使用说明
- ** 1.第一步:下载mycat 1.6.release **
-
** 运行命令:
解压文件
tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
会生成mycat文件夹
- **2.如果没有安装jdk1.7及以上版本的话,需要安装jdk1.7及以上。**
-
这里只显示配置jdk1.7环境。
命令:
vim /etc/profile
export JAVA_HOME=/home/xm6f/dev/jdk1.7.0_80
export JRE_HOME=/home/xm6f/dev/jdk1.7.0_80/jre
export MYCAT_HOME=/home/xm6f/dev/mycat
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$MYCAT_HOME/bin
- **3.修改wrapper.conf文件,配置jdk**
-
文件位置在/mycat/config/wrapper.conf
命令 vi /mycat/config/wrapper.conf
修改:
wrapper.java.command=%JAVA_HOME%/bin/java
- **4.修改schema.xml文件**
-
文件位置在/mycat/config/schema.xml
```
select user()
```
具体可以参照
https://blog.csdn.net/tornadojava/article/details/54948662
- **5.修改server.xml文件**
-
/mycat/config/server.xml
```
0
0
2
0
**8066**
9066
0
1
1m
1k
0
384m
true
123456
TESTDB
user
TESTDB
true
```
**注意:**
- **TESTDB**
-
是跟 schema.xml 文件中的
```
```
的name属性是一样的。
- **6.rule.xml (这里有很多规则,分片,分表等规则)**
-
```
id
func1
user_id
func1
sharding_id
hash-int
id
rang-long
>
>
> id
> mod-long
>
>
id
murmur
id
crc32slot
create_time
partbymonth
calldate
latestMonth
id
rang-mod
id
jump-consistent-hash
0
2
160
2
partition-hash-int.txt
autopartition-long.txt
>
>
> 2
>
8
128
24
yyyy-MM-dd
2015-01-01
partition-range-mod.txt
3
```
**注意特殊位置的**
**我这里用的是mod-long 及 取模算法
**
>
对应这个字段进行分库分表,通过这个字段值进行取模
> id
> mod-long
>
>
分配到那几个节点上,按照需设置。
>
>
> 2
>
其他暂时不用配置了。
这样mycat服务就搭建好了。
最后友情提醒,将相关端口需要开放比如我配置8066,当然也可以将服务器防火墙关掉。
**_
### 现在来整合springboot
_**
- **1.配置application.yml**
-
```
spring:
datasource:
url: jdbc:mysql://mycat部署物理地址: **8066** /TESTDB?useUnicode=true&characterEncoding=UTF-8
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
```
**注意:
** 加粗的端口号( **8066** ),是在/mycat/config/server.xml中配置的,相关可以看上面
数据库名称( **TESTDB** ),是在文件位置在/mycat/config/schema.xml中配置的,相关可以看上面
到这里,整合全部完成。
**_
### 结束语:
_**
- 1.mycat使用相当简单,是一款很出色的mysql的中间件,实际开发中还需要做一些处理,不然其性能可以不会很高。这是其原理决定的。
- 2.mycat做到了对业务代码完全解耦,比sharding-jdk这方面相对好很多(至少要在配置文件中配置分片等规则)。
- 3.相比较sharding-jdbc对于多表分片友好很多,不需要修改表结构。
#### 参考文章
https://blog.csdn.net/tornadojava/article/details/54948662
https://blog.csdn.net/qq_37936542/article/details/78613845