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方式支持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
- 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品
- 一个新颖的数据库中间件产品
一、安装
- 上传Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz包至服务器/mycat/目录下。(下载链接:http://dl.mycat.io/1.6-RELEASE/)
- 解压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生效。
- 客户端连接:
mysql -uXXX-h192.168.XXX.XXX -pXXXXXX-P3310
(4)验证:本地使用客户端能正常连接到Mycat。
- 全局序列号
Mycat提供多种方式:本地文件方式、数据库方式、本地时间戳方式等;根据目前现有的业务逻辑与改动量,决定使用数据库方式。主要操作流程:
- 新建一个数据库节点名称为: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
- 在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>
- 在mycat中的conf下的sequence_db_conf.properties增加配置,配置为:
LOCALSERIAL=seqDn
...
注:配置文件中的序列名建议为大写。
使用序列方式:next value for MYCATSEQ_XXX(XXX为sequence表中的序列名)。
Mycat安装与配置相关推荐
- Mycat安装、配置与实践(兼容mysql8)
Mycat 安装mycat 下载mycat官方的安装包,最好用github上面的,避免采坑 https://github.com/MyCATApache/Mycat-Server/releases 在 ...
- MyCat安装,数据导入,以及安装过程中的各种参数配置
1 安装MyCat 安装目标:使用Mycat完成两台mysql分片即两台数据库做集群,通过访问mycat路由实现数据自动分片(根据id分配不同的mysql服务器) 1.1.环境: 操作系统:Cento ...
- MyCAT 介绍,MyCAT主要功能 ,MyCAT 安装,MyCAT 配置(使用可能遇到的另类问题,见文末)
MyCAT 介绍,MyCAT主要功能 ,MyCAT 安装,MyCAT 配置(灵异问题,见文末) MyCAT介绍 Mycat是一个介于数据库与应用之间,进行数据处理与交互的中间服务! 通俗点讲,应用层可 ...
- MyCat介绍与配置(精)
Mycat 前生今世 如果我有一个32核心的服务器,我就可以实现1个亿的数据分片,我有32核心的服务器么?没有,所以我至今无法实现1个亿的数据库分片.---Mycat's Plan Mycat 简介 ...
- 分布式数据库中间件 MyCat 安装及使用
分布式数据库中间件 MyCat 安装及使用 关于 MyCat 的铺垫文章已经写了三篇了: MySQL 只能做小项目?松哥要说几句公道话! 北冥有 Data,其名为鲲,鲲之大,一个 MySQL 放不下! ...
- 部署-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 ...
- centos7上mycat安装_centos7 Mycat/MySQL/MariaDB安装部署
使用yum安装MySQL详细步骤 安装mysql源 centos系统中不包含mysql的源,需要先安装mysql源 1.官网下载源.使用图形界面操作系统进入mysql官网,进入以下界面. 2.在Cen ...
- 【mycat】mycat安装
Mycat安装 安装mycat 1.下载安装包 需要下载zip安装包以及jar包 zip包:http://dl.mycat.org.cn/2.0/install-template/mycat2-ins ...
- 第12章 Docker 中 MySQL 的安装与配置
第12章 Docker 中 MySQL 的安装与配置 文章目录 第12章 Docker 中 MySQL 的安装与配置 前言 目标 环境 支持的不同版本 Tag 和相应的Dockerfile链接 安装 ...
最新文章
- 干货|4条实用小建议,送给初入NLP领域的你(附链接)
- 迁移学习全面指南:概念、项目实战、优势、挑战
- 测试MM32F3277-MicroPython 2021-11-17 版本
- zcmu1133(dfs+判重)
- localstorage || globalStorage || userData
- c语言 java 性能 测试_这个蓝桥杯系统的题,用c语言去评测是满分,改为Java说运行错误是0分,但是我查看输入输出,至少第...
- URAL 1013 K-based Numbers. Version 3
- 启动tomcat时 一闪而过解决方法
- 一拍即合、一见钟情之后,智慧城市的“福利”来啦……
- python中format函数用法简书_增强的格式化字符串format函数
- SpringMVC接受List的几种方式
- java中的浮点数相加
- Vue学习笔记(二) —— 组件开发
- 无人驾驶(如何自己构建hdmap)
- win10(win8)上安装miniTool后出现请手动安装fastboot驱动问题
- 计算机控制系统编程语言,可编程控制器常用的几种编程语言
- Windows键盘鼠标模拟按键类型
- PYTHON机器学习基础(初学机器学习者的福音)
- 如何查看eclipse是32位还是64位
- 3.8 JS 制作无间断图片循环滚动效果
热门文章
- ABAP性能优化之使用二分查找(Binary Search)选项
- 优胜教育暴雷之后,线下一对一还是门好生意吗?
- java filereader类_Java FileReader类
- python apply_async函数_Python-未调用apply_async回调函数
- python解压文件_Python压缩和解压缩文件(zip/unzip)详解
- 自动打包+ios+android,使用 python 自动打包 Android 和 iOS
- linux下wxr的权限,Day16-Linux权限知识和应用实践讲解
- Python基础教程:对象及数字对象与数学运算
- python调用其他文件的类和函数
- Python练习题:合并列表和列表排序