Mycat(入门篇)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: Mycat是什么Mycat是一款基于阿里开源产品Cobar而研发的开源数据库分库分表中间件(基于Java语言开发)。官网所言:Mycat国内最活跃的、性能最好的开源数据库中间件!一个彻底开源的,面向企业应用开发的大数据库集群支持事务、ACID、...

Mycat是什么

Mycat是一款基于阿里开源产品Cobar而研发的开源数据库分库分表中间件(基于Java语言开发)。官网所言:Mycat国内最活跃的、性能最好的开源数据库中间件!

  • 一个彻底开源的,面向企业应用开发的大数据库集群
  • 支持事务、ACID、可以替代MySQL的加强版数据库
  • 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群
  • 一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server
  • 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品
  • 一个新颖的数据库中间件产品

Mycat关键特性

  • 支持SQL92标准
  • 支持MySQL、Oracle、DB2、SQL Server、PostgreSQL等DB的常见SQL语法
  • 遵守Mysql原生协议,跨语言,跨平台,跨数据库的通用中间件代理
  • 基于心跳的自动故障切换,支持读写分离,支持MySQL主从,以及galera cluster集群
  • 支持Galera for MySQL集群,Percona Cluster或者MariaDB cluster
  • 基于Nio实现,有效管理线程,解决高并发问题
  • 支持数据的多片自动路由与聚合,支持sum,count,max等常用的聚合函数,支持跨库分页
  • 支持单库内部任意join,支持跨库2表join,甚至基于caltlet的多表join
  • 支持通过全局表,ER关系的分片策略,实现了高效的多表join查询
  • 支持多租户方案
  • 支持分布式事务(弱xa)
  • 支持XA分布式事务(1.6.5)
  • 支持全局序列号,解决分布式下的主键生成问题
  • 分片规则丰富,插件化开发,易于扩展
  • 强大的web,命令行监控
  • 支持前端作为MySQL通用代理,后端JDBC方式支持MySQL、PostgreSQL、Oracle、DB2、SQLServer、MongoDB、巨杉
  • 支持密码加密
  • 支持服务降级
  • 支持IP白名单
  • 支持SQL黑名单、sql注入攻击拦截
  • 支持prepare预编译指令(1.6)
  • 支持非堆内存(Direct Memory)聚合计算(1.6)
  • 支持PostgreSQL的native协议(1.6)
  • 支持mysql和oracle存储过程,out参数、多结果集返回(1.6)
  • 支持zookeeper协调主从切换、zk序列、配置zk化(1.6)
  • 支持库内分表(1.6)
  • 集群基于ZooKeeper管理,在线升级,扩容,智能优化,大数据处理(2.0开发版)

安装与使用

  • 下载(目前最新发行版是1.6.5):http://dl.mycat.io/

  • 安装:解压即可

  • 配置:Mycat是基于Java开发的,确保安装好了Java环境,可命令行输入:java -version 进行测试。Linux下还需配置Mycat的解压目录:vim /etc/profile,配置完成后使用:source /etc/profile:

export JAVA_HOME=xxx
export MYCAT_HOME=xxx
  • 运行(Linux):

    • ./mycat start 启动
    • ./mycat stop 停止
    • ./mycat console 前台运行
    • ./mycat install 添加到系统自动启动(暂未实现)
    • ./mycat remove 取消随系统自动启动(暂未实现)
    • ./mycat restart 重启服务
    • ./mycat pause 暂停
    • ./mycat status 查看启动状态
  • 运行(Windows):双击bin/tartup_nowrap.bat,如果出现闪退,可在cmd命令行运行,并查看出错原因

  • 内存配置:启动前,一般需要修改JVM配置参数,打开conf/wrapper.conf文件,可根据本机配置情况修改为512M或其它值

# Java Additional Parameters
#wrapper.java.additional.1=
wrapper.java.additional.1=-DMYCAT_HOME=.
wrapper.java.additional.2=-server
wrapper.java.additional.3=-XX:MaxPermSize=64M
wrapper.java.additional.4=-XX:+AggressiveOpts
wrapper.java.additional.5=-XX:MaxDirectMemorySize=2G
wrapper.java.additional.6=-Dcom.sun.management.jmxremote
wrapper.java.additional.7=-Dcom.sun.management.jmxremote.port=1984
wrapper.java.additional.8=-Dcom.sun.management.jmxremote.authenticate=false
wrapper.java.additional.9=-Dcom.sun.management.jmxremote.ssl=false
wrapper.java.additional.10=-Xmx4G
wrapper.java.additional.11=-Xms1G
  • 连接测试:
    • 测试mycat与测试mysql完全一致,mysql怎么连接,mycat就怎么连接
    • 命令行:mysql -uroot -proot -P8066 -h127.0.0.1(其中,user和password可在conf/server.xml配置查找,8066是默认的服务端口,也可以在conf/server.xml中配置修改)
    • 客户端:1.3和1.4版本目前部分工具无法连接,会提示database not selected,建议使用高版本的Mycat,1.5版本已经修复了部分客户端工具的连接

常见分库分表产品对比

分库分表产品 MyCat Sharding-JDBC Cobar Cobar-client TDDL
分库 未开源
分表 未开源
中间层
ORM支持 任意 任意 任意 仅MyBatis 任意
数据库支持 任意 任意 仅MySQL 任意 任意
社区情况 活跃 活跃 停更 未知 未知

相关链接

Mycat官网
Mycat从零开始
Mycat权威指南
GitHub:Mycat-Server
Wiki:Mycat-Server
Issues:Mycat-Server
mysql中间件研究(Atlas,Cobar,TDDL)
mysql中间件研究(Atlas,Cobar,TDDL,Mycat,Heisenberg,Oceanus,Vitess,OneProxy)

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
存储 Oracle 前端开发
MyCat-简介-MyCat 的使用场合及下载 | 学习笔记
快速学习 MyCat-简介-MyCat 的使用场合及下载
233 0
MyCat-简介-MyCat 的使用场合及下载 | 学习笔记
|
6月前
|
SQL 存储 关系型数据库
04MyCat - MyCat概述
04MyCat - MyCat概述
55 0
|
SQL 存储 分布式计算
MyCat:第三章:Mycat概述
MyCat:第三章:Mycat概述
274 0
|
Java 关系型数据库 MySQL
MyCat:第五章:快速入门
MyCat:第五章:快速入门
173 0
MyCat:第五章:快速入门
|
SQL cobar 前端开发
MyCat:第二章:Mycat前世今生
MyCat:第二章:Mycat前世今生
218 0
|
存储 安全 中间件
MyCat:第四章:Mycat中的概念
MyCat:第四章:Mycat中的概念
|
存储 Java 中间件
MyCat-入门-环境搭建-MyCat 安装 | 学习笔记
快速学习 MyCat-入门-环境搭建-MyCat 安装
127 0
MyCat-入门-环境搭建-MyCat 安装 | 学习笔记
|
cobar Oracle 中间件
MyCat-简介-MyCat 优势 | 学习笔记
快速学习 MyCat-简介-MyCat 优势
235 0
|
存储 NoSQL 安全
MyCat-简介-MyCat 引入 | 学习笔记
快速学习 MyCat-简介-MyCat 引入
88 0
MyCat-简介-MyCat 引入 | 学习笔记
|
存储 cobar 关系型数据库
MyCat-简介-MyCat 历史 | 学习笔记
快速学习 MyCat-简介-MyCat 历史
271 0
MyCat-简介-MyCat 历史 | 学习笔记