关键特性

  • 支持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方式支持Oracle、DB2、SQL Server 、 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开发版)。

什么是MYCAT

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

一、安装

  1. 上传Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz包至服务器/mycat/目录下。(下载链接:http://dl.mycat.io/1.6-RELEASE/)
  2. 解压Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz包得到mycat目录;

tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz

二、配置

(1)替换server.xml,schema.xml,rule.xml

server.xml:为mycat服务配置,主要为配置mycat的连接数据库用户名、密码、端口等相关信息;

schema.xml:主要配置分库分表相关节点信息;

rule.xml:主要配置是分库字段规则。

(2)启动

进入/mycat/mycat/bin文件夹中

./mycat start #启动

./mycat stop #停止

./mycat restart #重新启动

开放3310(连接)与3311(管理端)端口

/sbin/iptables -I INPUT -p tcp --dport 3310  -j ACCEPT

/sbin/iptables -I INPUT -p tcp --dport 3311  -j ACCEPT

(3)设置环境变量,供后续维护方便。

在/etc/profile增加相应内容

vim  /etc/profile

export MYCAT_HOME=/mycat/mycat/

export PATH=$PATH:$MYCAT_HOME/bin

编辑后source  /etc/profile生效。

  1. 客户端连接:

mysql -uXXX-h192.168.XXX.XXX -pXXXXXX-P3310

(4)验证:本地使用客户端能正常连接到Mycat。

  • 全局序列号

Mycat提供多种方式:本地文件方式、数据库方式、本地时间戳方式等;根据目前现有的业务逻辑与改动量,决定使用数据库方式。主要操作流程:

  1. 新建一个数据库节点名称为:sequencedb,用于专门管理序列。在该库中创建表:sequence。创建三个函数( 获取当前 sequence 的值、设置 sequence 值、获取下一个 sequence 值),函数创建脚本为:

DROP FUNCTION IF EXISTS mycat_seq_currval;

CREATE FUNCTION mycat_seq_currval(seq_name VARCHAR(50)) RETURNS varchar(64)

BEGIN

DECLARE  retval  VARCHAR(64);

SET  retval ='-999999999,null';

SELECT concat(CAST(current_value AS CHAR),',',CAST(increment AS CHAR)) INTO  retval

FROM sequence

WHERE name = seq_name;

RETURN  retval ;

END;

DROP FUNCTION IF EXISTS mycat_seq_setval;

CREATE FUNCTION mycat_seq_setval(seq_name VARCHAR(50),value INTEGER) RETURNS varchar(64)

BEGIN

UPDATE sequence

SET current_value = value

WHERE name = seq_name;

RETURN mycat_seq_currval(seq_name);

END;

DROP FUNCTION IF EXISTS mycat_seq_nextval;

CREATE FUNCTION mycat_seq_nextval(seq_name VARCHAR(50)) RETURNS varchar(64)

BEGIN

UPDATE sequence

SET current_value = current_value + increment

WHERE name = seq_name;

RETURN mycat_seq_currval(seq_name);

END

  1. 在mycat中的conf下的schema.xml中增加序号数据库配置,配置代码为:

<!--sequence-->

<dataNode name="seqDn" dataHost="localhostSeq" database="sequencedb" />

<dataHost name="localhostSeq" maxCon="1000" minCon="10" balance="0"

writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">

<heartbeat>select user();</heartbeat>

<writeHost host="hostM1" url="192.168.XX.XX:3306" user="XXX" password="XXXX">

</writeHost>

</dataHost>

  1. 在mycat中的conf下的sequence_db_conf.properties增加配置,配置为:

LOCALSERIAL=seqDn

...

注:配置文件中的序列名建议为大写。

使用序列方式:next value for MYCATSEQ_XXX(XXX为sequence表中的序列名)。

Mycat安装与配置相关推荐

  1. Mycat安装、配置与实践(兼容mysql8)

    Mycat 安装mycat 下载mycat官方的安装包,最好用github上面的,避免采坑 https://github.com/MyCATApache/Mycat-Server/releases 在 ...

  2. MyCat安装,数据导入,以及安装过程中的各种参数配置

    1 安装MyCat 安装目标:使用Mycat完成两台mysql分片即两台数据库做集群,通过访问mycat路由实现数据自动分片(根据id分配不同的mysql服务器) 1.1.环境: 操作系统:Cento ...

  3. MyCAT 介绍,MyCAT主要功能 ,MyCAT 安装,MyCAT 配置(使用可能遇到的另类问题,见文末)

    MyCAT 介绍,MyCAT主要功能 ,MyCAT 安装,MyCAT 配置(灵异问题,见文末) MyCAT介绍 Mycat是一个介于数据库与应用之间,进行数据处理与交互的中间服务! 通俗点讲,应用层可 ...

  4. MyCat介绍与配置(精)

    Mycat 前生今世 如果我有一个32核心的服务器,我就可以实现1个亿的数据分片,我有32核心的服务器么?没有,所以我至今无法实现1个亿的数据库分片.---Mycat's Plan Mycat 简介 ...

  5. 分布式数据库中间件 MyCat 安装及使用

    分布式数据库中间件 MyCat 安装及使用 关于 MyCat 的铺垫文章已经写了三篇了: MySQL 只能做小项目?松哥要说几句公道话! 北冥有 Data,其名为鲲,鲲之大,一个 MySQL 放不下! ...

  6. 部署-Mycat-Server-1.6.7.4安装与配置(CentOS 7.7)

    版本 1.Mycat Server:1.6.7.4 2.MySql Server:5.7 3.Linux:CentOS 7.7 部署 MySql 5.7 1.部署-用Yum安装MySQL 5.7(Ce ...

  7. centos7上mycat安装_centos7 Mycat/MySQL/MariaDB安装部署

    使用yum安装MySQL详细步骤 安装mysql源 centos系统中不包含mysql的源,需要先安装mysql源 1.官网下载源.使用图形界面操作系统进入mysql官网,进入以下界面. 2.在Cen ...

  8. 【mycat】mycat安装

    Mycat安装 安装mycat 1.下载安装包 需要下载zip安装包以及jar包 zip包:http://dl.mycat.org.cn/2.0/install-template/mycat2-ins ...

  9. 第12章 Docker 中 MySQL 的安装与配置

    第12章 Docker 中 MySQL 的安装与配置 文章目录 第12章 Docker 中 MySQL 的安装与配置 前言 目标 环境 支持的不同版本 Tag 和相应的Dockerfile链接 安装 ...

最新文章

  1. 干货|4条实用小建议,送给初入NLP领域的你(附链接)
  2. 迁移学习全面指南:概念、项目实战、优势、挑战
  3. 测试MM32F3277-MicroPython 2021-11-17 版本
  4. zcmu1133(dfs+判重)
  5. localstorage || globalStorage || userData
  6. c语言 java 性能 测试_这个蓝桥杯系统的题,用c语言去评测是满分,改为Java说运行错误是0分,但是我查看输入输出,至少第...
  7. URAL 1013 K-based Numbers. Version 3
  8. 启动tomcat时 一闪而过解决方法
  9. 一拍即合、一见钟情之后,智慧城市的“福利”来啦……
  10. python中format函数用法简书_增强的格式化字符串format函数
  11. SpringMVC接受List的几种方式
  12. java中的浮点数相加
  13. Vue学习笔记(二) —— 组件开发
  14. 无人驾驶(如何自己构建hdmap)
  15. win10(win8)上安装miniTool后出现请手动安装fastboot驱动问题
  16. 计算机控制系统编程语言,可编程控制器常用的几种编程语言
  17. Windows键盘鼠标模拟按键类型
  18. PYTHON机器学习基础(初学机器学习者的福音)
  19. 如何查看eclipse是32位还是64位
  20. 3.8 JS 制作无间断图片循环滚动效果

热门文章

  1. ABAP性能优化之使用二分查找(Binary Search)选项
  2. 优胜教育暴雷之后,线下一对一还是门好生意吗?
  3. java filereader类_Java FileReader类
  4. python apply_async函数_Python-未调用apply_async回调函数
  5. python解压文件_Python压缩和解压缩文件(zip/unzip)详解
  6. 自动打包+ios+android,使用 python 自动打包 Android 和 iOS
  7. linux下wxr的权限,Day16-Linux权限知识和应用实践讲解
  8. Python基础教程:对象及数字对象与数学运算
  9. python调用其他文件的类和函数
  10. Python练习题:合并列表和列表排序