MyCAT入门实践
1.MyCAT简单介绍
MyCAT是一个彻底开源的,面向企业应用开发的大数据库集群,支持事务、ACID、可以替代MySQL的加强版数据库,是一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群
融合了内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server,并且结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品,是一个新颖的数据库中间件产品
2.安装JAVA环境
参考:Windows下Java环境变量配置 http://www.cnblogs.com/heyangyi/p/8942074.html
3.下载配置MyCat
下载地址:http://dl.mycat.io/1.6-RELEASE/

其他准备工作,安装mysql,创建 db1,db2,db3三个数据库
CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET utf8 */;
CREATE DATABASE `db2` /*!40100 DEFAULT CHARACTER SET utf8 */;
CREATE DATABASE `db3` /*!40100 DEFAULT CHARACTER SET utf8 */;
分别在三个数据库中添加数据表:
CREATE TABLE `travelrecord` (
`id` bigint(20) NOT NULL,
`user_id` varchar(100) DEFAULT NULL,
`traveldate` date DEFAULT NULL,
`fee` decimal(10,0) DEFAULT NULL,
`days` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
解压下载得mycat,修改目录下得 conf 中的 schema.xml
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<writeHost host="hostM1" url="10.0.0.209:3306" user="sa"
password="123456">
<!-- can have multi read hosts -->
<readHost host="hostS2" url="10.0.0.209:3306" user="sa" password="123456" />
</writeHost>
<writeHost host="hostS1" url="10.0.0.209:3306" user="sa"
password="123456" />
<!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> -->
</dataHost>
注意修改mysql所在得ip,port, user,password
配置mycat环境变量 MYCAT_HOME

4.运行测试MyCat
进入mycat的bin目录,运行 startup_nowrap.bat

打开MySQL Workbench,添加Connections

Host 是Mycat 所在服务IP地址,端口默认为:8066,User 和Password 是在 Mycat conf 目录下的server.xml中配置的 user 节点
测试插入数据到 travelrecord 表
insert into travelrecord(id,user_id,traveldate,fee,days) values(1,'Victor',20160101,100,10);
insert into travelrecord(id,user_id,traveldate,fee,days) values(5000001,'Job',20160102,100,10);
insert into travelrecord(id,user_id,traveldate,fee,days) values(10000001,'Slow',20160103,100,10);
分别查看db1,db2,db3中的数据
SELECT * FROM db1.travelrecord;

SELECT * FROM db2.travelrecord;

SELECT * FROM db3.travelrecord;

三条数据分别被添加到3个数据库中,这个与conf目录下autopartition-long.txt的定义有关,这个文件主要定义auto-sharding-long的规则
# range start-end ,data node index
# K=1000,M=10000.
0-500M=0
500M-1000M=1
1000M-1500M=2
其中0-500M条数据会进到 db1分片库
其中500M-1000M条数据会进到 db2分片库
其中1000M-1500M条数据会进到 db3分片库
查询刚刚添加的三天数据:进入mycat_conn链接里面,会发现存在了TESTDB逻辑库,执行查询
SELECT * FROM travelrecord;

重要配置文件简要说明
- server.xml是Mycat服务器参数调整和用户授权的配置文件
- schema.xml是逻辑库定义和表以及分片定义的配置文件
- rule.xml是分片规则的配置文件
、
MyCAT入门实践的更多相关文章
- 分布式学习系列【dubbo入门实践】
分布式学习系列[dubbo入门实践] dubbo架构 组成部分:provider,consumer,registry,monitor: provider,consumer注册,订阅类似于消息队列的注册 ...
- sass、less和stylus的安装使用和入门实践
刚 开始的时候,说实话,我很反感使用css预处理器这种新玩意的,因为其中涉及到了编程的东西,私以为很复杂,而且考虑到项目不是一天能够完成的,也很少是 一个人完成的,对于这种团队的项目开发,前端实践用c ...
- Django入门实践(三)
Django入门实践(三) Django简单应用 前面简单示例说明了views和Template的工作过程,但是Django最核心的是App,涉及到App则会和Model(数据库)打交道.下面举的例子 ...
- Django入门实践(二)
Django入门实践(二) Django模板简单实例 上篇中将html写在了views中,这种混合方式(指Template和views混在一起)不适合大型开发,而且代码不易管理和维护,下面就用Djan ...
- Django入门实践(一)
Django入门实践(一) Django编程思路+入门 认识Django有一个多月了,我觉得学习Django应该先理清它的编程思路.它是典型的MVC框架(在Django里也称MTV),我觉得Djang ...
- MyCat 入门:漫谈 MyCat 配置系统
文章首发于[博客园-陈树义],点击跳转到原文<MyCat 入门:漫谈 MyCat 配置系统> 上篇文章<MyCat 启蒙:分布式系统的数据库架构演变>中,我们通过一个项目从零到 ...
- 全文搜索引擎Elasticsearch入门实践
全文搜索引擎Elasticsearch入门实践 感谢阮一峰的网络日志全文搜索引擎 Elasticsearch 入门教程 安装 首先需要依赖Java环境.Elasticsearch官网https://w ...
- Mycat入门
1. Mycat入门 官网 http://www.mycat.io/ 1.1. 什么是Mycat 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务.ACID.可以替代MySQL的加强版数据库 ...
- 【实战】Docker入门实践二:Docker服务基本操作 和 测试Hello World
操作环境 操作系统:CentOS7.2 内存:1GB CPU:2核 Docker服务常用命令 docker服务操作命令如下 service docker start #启动服务 service doc ...
随机推荐
- 省市区三级联动picker-view-微信小程序
这个是微信小程序的picker-view组件,开发的省市区3级联动,体验还不错,就分享给大家了, 此版本的省市区数据为本地JS数据,免去请求加载数据了,大家直接看源码,先看下面的动图: 项目地址: ...
- NHibernate问题求大神解决!!!
这是我定义的实体类 对应的数据库表 映射文件 数据访问层写的是插入语句 错误: 捕捉到 NHibernate.Exceptions.GenericADOException HResult=-21462 ...
- 最小割(zjoi2011,bzoj2229)(最小割树)
小白在图论课上学到了一个新的概念--最小割,下课后小白在笔记本上写下了如下这段话: "对于一个图,某个对图中结点的划分将图中所有结点分成两个部分,如果结点\(s,t\)不在同一个部分中,则称 ...
- 01_python_初始python
一.初始python python是一门解释型语言,弱类型语言 / python解释器最为常用的是cpython(官方) 弱类型语言: a = 1 a = 'alex' #说明变量a既可以是整 ...
- 漏洞复现-vsftpd-v2.3.4
vsftpd-2.3.4早期版本存在恶意的后门,在钟馗之眼上目前骇客以收到如此的主机,不过很多的服务器都已经被修复过,但总有漏网之鱼,有兴趣的小伙伴不妨去试试 0×01前言: vsftpd-2.3.4 ...
- Linux学习笔记-基本操作3
1. vim编辑器的使用2. gcc编译器3. 静态库的制作 -- lib4. 动态库的制作 -- dll vi -- vimvim是从vi发展过来的一款文本编辑器vi a.txt前提: 安装了 ...
- drf-序列化器的理解
序列化器作用: 1.进行数据的校验 2.对数据对象进行转换 序列化: 模型类对象 -----> python字典 用于输出, 返回给前端使用 反序列化: 前端传送的数据 --- ...
- iOS开发-从16进制颜色中获取UIColor
目前iOS中设置UIColor只能使用其枚举值.RGB等方法,不能直接将常用的16进制颜色值直接转为UIColor对象,所以写了点代码,将16进制颜色值转为UIColor. 代码如下, //头文件#i ...
- 彻底弄懂“PKIX path building failed”问题
SSL的基础知识 SSL的全称是Secure Socket Layer.它的通信流程如下图所示,客户端与服务端会通过几次通信,通过非对称加密创建出一个加密密钥,用于以后的对称信息加密. 1,客户端明文 ...
- POJ 2845
#include <iostream> #include <string> #include <algorithm> #define MAXN 350 using ...