MyCAT入门实践

Posted heyangyi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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入门实践的主要内容,如果未能解决你的问题,请参考以下文章

预告:数据库MyCAT入门与实践 (1月10日18:00周四熊猫馆)

MyCat 入门:漫谈 MyCat 配置系统

基于代理的数据库分库分表框架 Mycat实践

mycat实践

Mycat生产实践---数据迁移与扩容实践

数据库中间件mycat简单入门