MyCat 1.6.7.5 介绍与选型指南

MyCat 1.6.7.5 介绍与选型指南:基于官方公开资料溯源(查询日期 2026-10-19,未做本地安装实测),梳理 MySQL 分布式中间件 MyCat 的代理架构、分库分表与读写分离能力、快速上手与限制,并如实标注社区现状——1.x 最新 release 停在 2020-11、Mycat2 停在 2022-06、活跃度低迷;给出与 Apache ShardingSphere、ProxySQL、Vitess 的量化选型对比。

MyCatMyCatNewSQL2026/10/19

MyCat 1.6.7.5 介绍与选型指南

一、信息基准

1.1 查询说明

  • 查询日期:2026-10-19。
  • 信息获取方式:纯官方资料溯源(GitHub 官方仓库 MyCATApache/Mycat-Server 与 MyCATApache/Mycat2 的 Release 页、官方 README、官网 mycatone.top、官方《Mycat1.6 权威指南》),本文不做本地安装与运行实测。
  • 版本结论:MyCat 存在两条代码线——Mycat-Server(1.x 线)最新 release 为 1.6.76-release-2020-11-2(2020-11-02 发布),Mycat2 最新 release 为 v1.22-2022-6-25(2022-06-25 发布)。本文以与站内既有实操文档一致、社区仍广泛使用的 1.6 系列稳定版 1.6.7.5(1.6.7.5-release-20200422133810)为介绍基准,并如实说明两条线的社区活跃度现状(这是选型的关键事实)。

1.2 版本依据

项目实查结果(2026-10-19)来源
1.x 最新 release1.6.76-release-2020-11-2(2020-11-02)github.com/MyCATApache/Mycat-Server/releases
本文基准版本1.6.7.5(1.6.7.5-release-20200422133810,2020-04)Mycat-Server 发行物命名与站内既有文档
Mycat2 最新 releasev1.22-2022-6-25(2022-06-25)github.com/MyCATApache/Mycat2/releases
Mycat2 最近代码提交2023-08-15GitHub 仓库 pushed_at 实查
Mycat-Server 最近代码提交2026-05-18(有零星提交,但自 2020-11 后无新 release)GitHub 仓库 pushed_at 实查
GitHub starsMycat-Server 9501;Mycat2 1734GitHub 仓库页实查
开源许可Mycat-Server 为 GPL-2.0;Mycat2 为 GPL-3.0两仓库 LICENSE 实查
代码仓库MyCATApache/Mycat-Server、MyCATApache/Mycat2github.com

1.3 官方来源清单

来源地址
官方站点(1.x 线)http://mycatone.top/
Mycat-Server 仓库https://github.com/MyCATApache/Mycat-Server
Mycat2 仓库https://github.com/MyCATApache/Mycat2
Mycat1.6 权威指南(官方文档)官方 README 提供的语雀分享与 PDF(mycat.org.cn/document/mycat-definitive-guide.pdf)
Gitee 官方镜像https://gitee.com/MycatOne/Mycat-Server

二、软件概述

本文介绍的是 MyCat 1.6 系列稳定版 1.6.7.5(1.6.7.5-release-20200422133810),并同步说明 Mycat2 的现状。

MyCat 是一款开源的 MySQL 分布式中间件(分库分表代理):它以 Java NIO 实现了 MySQL 协议代理,对前端应用模拟成一台 MySQL Server,对后端则管理一批真实的 MySQL 实例(分片节点)。数据永远存放在后端 MySQL 中,MyCat 本身不存储数据,只承担 SQL 路由、结果聚合与读写分离——这是理解 MyCat 一切行为的前提(官方《Mycat1.6 权威指南》口径)。

社区活跃度(选型关键事实,如实说明):GitHub 实查显示,Mycat-Server 的最新 release 停留在 2020-11 的 1.6.76,Mycat2 的最新 release 停留在 2022-06 的 v1.22,且 Mycat2 代码仓库最近一次 push 为 2023-08-15——两条代码线均已多年没有新版本发布,社区活跃度低迷。项目未发布停止维护的官方公告,但「无新版本、无活跃迭代」的事实应在选型时作为首要约束对待。

三、核心架构

3.1 代理形态与端口

MyCat 以独立进程部署在后端 MySQL 与应用之间:数据端口 8066 接收业务连接(MySQL 协议),管理端口 9066 提供运维命令(show @@、reload @@ 等)。应用无需改造驱动,像连普通 MySQL 一样连接 MyCat。

3.2 逻辑库表与分片节点

官方 schema.xml 定义了四层核心抽象:

对象说明
schema逻辑库,对前端暴露的「虚拟 MySQL 库」
table逻辑表,可声明分片规则(rule)与分片键
dataNode逻辑分片 = 具体 MySQL 库的映射单元
dataHost数据主机组,承载读写分离与心跳切换

3.3 请求处理链路

前端 SQL 进入后,MyCat 完成 SQL 解析 → 按分片规则路由计算 → 改写并分发到对应 dataNode → 汇总各分片结果(含聚合/排序)→ 返回客户端。跨分片的复杂 JOIN、聚合能力有限,需要结合业务设计分片键(官方权威指南口径)。

3.4 Mycat2 的差异

Mycat2 官方定位为「基于 Sharding SQL 与 Calcite 的 MySQL Proxy」:引入基于 Calcite 的查询优化、支持注解式建表自动映射物理表等新机制。但如前所述,该线自 2022-06 后无新 release、2023-08 后无代码提交。

四、功能特性

4.1 分库分表

rule.xml 内置多种分片算法(取模、范围、按日期分片等),通过 tableRule 将分片键映射到分片函数,实现水平拆分(官方配置文档)。

4.2 读写分离

dataHost 层通过 balance、writeType、readHost 配置实现写走主库、读走从库,并配合心跳完成故障切换(官方 schema.xml 文档)。

4.3 全局序列

为分片表的主键提供全局唯一 ID:本地文件、数据库段、时间戳等多种实现方式(官方 sequence 相关配置文档)。

4.4 管理命令

9066 管理端口提供 show @@datasource、show @@datanode、reload @@config、rollback @@config 等运维命令(官方权威指南;站内已有《MyCat 常用 CLI 命令与工具详解》详解篇)。

4.5 高可用

支持 dataHost 内 writeHost/readHost 主从切换(switchType 与心跳检测),亦可与 Keepalived 等外部手段组合(官方配置文档)。

五、快速上手

以下步骤转述自官方 README 与《Mycat1.6 权威指南》,本文不做本地实测。

5.1 获取

从 Mycat-Server 的 GitHub Releases 页获取 1.6.7.5 发行包(Mycat-server-1.6.7.5-release-20200422133810-*-linux.tar.gz),运行环境需 Java 运行时(官方文档示例基于 JDK 1.8)。

5.2 启动

解压后进入 mycat 目录,使用官方启动脚本:

./bin/mycat start    # 后台启动,另提供 console / stop / restart / status

启动后监听数据端口 8066 与管理端口 9066(server.xml 可配置)。

5.3 连接与验证

使用 server.xml 中定义的账号通过 MySQL 客户端连接 8066 端口:

mysql -h127.0.0.1 -P8066 -u<server.xml中定义的用户> -p

连接后执行 show databases; 可见 schema.xml 声明的逻辑库,即代表代理已就绪;随后按 schema.xml/rule.xml 定义的逻辑表进行 DML。完整配置示例见官方权威指南与站内《MyCat 1.6.7.5 配置参数详解》。

六、适用场景与限制

6.1 适用场景

  • 存量 MyCat 集群的维护与扩容(多数存量部署集中在 1.6.7.x)。
  • 以 MySQL 为后端的分库分表历史项目,且团队已具备 MyCat 运维经验。
  • 只需要代理层读写分离、简单分片的中等规模场景。

6.2 限制与注意事项

  • 版本停更是硬约束:1.x 最新 release 2020-11、Mycat2 最新 release 2022-06(GitHub 实查),新漏洞修复、新版 MySQL/JDK 兼容性均无官方维护承诺,新项目不建议选型。
  • 跨分片复杂 SQL 支持有限,需按分片键设计业务。
  • 依赖独立 JVM 进程,代理层自身的高可用需额外建设。
  • GPL 系许可(1.x 为 GPL-2.0、Mycat2 为 GPL-3.0)对集成分发的传染性需法务评估。

七、同类选型对比

7.1 候选概览

工具定位开源许可
MyCat 1.x / Mycat2MySQL 协议代理型分库分表中间件GPL-2.0 / GPL-3.0
Apache ShardingSphere分库分表生态:JDBC + Proxy 双形态Apache-2.0
ProxySQL高性能 MySQL/PostgreSQL 代理GPL-3.0
Vitess面向水平扩展的 MySQL 数据库聚类系统Apache-2.0

7.2 量化对比(2026-10-19 实查)

维度MyCat 1.xMycat2ShardingSphereProxySQLVitess
开源许可GPL-2.0GPL-3.0Apache-2.0GPL-3.0Apache-2.0
GitHub stars9501173420810693921387
最近发版1.6.76(2020-11-02)v1.22(2022-06-25)5.5.3(2026-02-28)v3.0.11(2026-08-27)v24.0.5(2026-10-13)
版本节奏自 2020-11 无新 release(仓库仍有零星提交)自 2022-06 无新 release、2023-08 后无 pushASF 顶级项目,持续发版2.x/3.x 双线维护月度补丁 + 半年 minor
技术栈Java(MySQL 协议代理)Java + CalciteJavaC++Go
形态侧重代理层分片 + 读写分离新一代分片代理(已停滞)JDBC/Proxy 双形态,SQL 兼容性工程完善代理层读写分离、查询路由、连接池云原生分片,VReplication 与 K8s 生态

(stars、发版时间与许可取自各项目 GitHub Releases/仓库页实查;Kafka 式说明不适用,本文对比对象版本均以官方 Release 页为准。)

7.3 选型建议

如实基于社区数据给结论:新项目不要选 MyCat——两条代码线多年无新版本是量化事实,新硬件/新 JDK/新 MySQL 的兼容风险只能自行承担。存量 MyCat 用户建议评估向 ShardingSphere 迁移(生态活跃、ASF 治理、JDBC 形态可与应用共同演进);若痛点只是读写分离与连接聚合而不做分库分表,ProxySQL 更轻量;若面向超大规模、多租户与 Kubernetes 交付,Vitess(CNCF 项目)是当前最活跃的选择。三者的站内详解见《Apache ShardingSphere 5.5.3 介绍与选型指南》《ProxySQL 2.7.3 配置参数详解》与《Vitess 24.0 配置参数详解》。

八、参考链接