windows下mycat的安裝使用

来源:互联网 发布:matlab符号矩阵行列式 编辑:程序博客网 时间:2024/05/29 14:13


mycat简介:

--MyCat是代替昂贵的oracle的MySQL集群中间件,前身是阿里大名鼎鼎的Cobar。


1:下载安装包

下载地址:http://www.mycat.io/




--里面有各种版本的mycat,根据需要下载windows版本的。

--下载完成后,解压安装包


2:配置mycat环境变量


--添加MAVEN_HOME



--将mycat的bin目录添加到path变量中去





3:修改mycat/conf目录下的配置文件

--介绍最主要的四个配置文件

schema.xml:定义并管理MyCat的逻辑库、表、分片规则、DataNode 以及DataSource。

server.xml:几乎保存了所有mycat 需要的系统配置信息。用于服务器参数调整和用户授权的配置文件。

rule.xml:用来定义拆分表格的分片规则。

wrapper.conf:jvm启动参数的配置。


--修改wrapper.conf文件

#********************************************************************# Wrapper Properties#********************************************************************# Java Application
#配置自己的java路径wrapper.java.command=C:\Program Files\Java\jdk1.8.0_121\bin\javawrapper.working.dir=..


--修改schema.xml文件

<?xml version="1.0"?><!DOCTYPE mycat:schema SYSTEM "schema.dtd"><mycat:schema xmlns:mycat="http://io.mycat/">    <!-- TESTDB是mycat数据库,注意名称必须和server.xml中配置的一致 --><schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">    <!-- dn1、dn2、dn3是mysql中的三个数据库节点,分别代替三个不同的数据库。             dataNode该属性定义逻辑表所属的数据库, rule属性用于指定逻辑表要使用的规则名字,规则名字在rule.xml中定义。--><table name="travelrecord" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" /><!--primaryKey属性指定逻辑表对应的主键,type属性定义了逻辑表的类型,目前逻辑表只有“全局表”和”普通表”两种类型,不指定即为普通表--><table name="company" primaryKey="ID" type="global" dataNode="dn1,dn2,dn3" /><table name="goods" primaryKey="ID" type="global" dataNode="dn1,dn2" /><!-- autoIncrement指定这个表有使用自增长主键,默认为false --><table name="hotnews" primaryKey="ID" autoIncrement="true" dataNode="dn1,dn2,dn3"   rule="mod-long" /><table name="employee" primaryKey="ID" dataNode="dn1,dn2"   rule="sharding-by-intfile" /><table name="customer" primaryKey="ID" dataNode="dn1,dn2"   rule="sharding-by-intfile"><childTable name="orders" primaryKey="ID" joinKey="customer_id"parentKey="id"><childTable name="order_items" joinKey="order_id"parentKey="id" /></childTable><childTable name="customer_addr" primaryKey="ID" joinKey="customer_id"parentKey="id" /></table></schema><!-- 配置mysql数据库节点,一个dataNode代表一个数据库 --><dataNode name="dn1" dataHost="127.0.0.1" database="db1" /><dataNode name="dn2" dataHost="127.0.0.1" database="db2" /><dataNode name="dn3" dataHost="127.0.0.1" database="db3" /><!-- dataHost用来定义具体的mysql以及读写分离  --><!--  maxCon/maxCon指定最大最小连接数,balance=“0”, 所有读操作都发送到当前可用的writeHost上。        balance=“1”,所有读操作都随机的发送到readHost。        balance=“2”,所有读操作都随机的在writeHost、readhost上分发。writeType=“0”, 所有写操作都发送到可用的writeHost上。        writeType=“1”,所有写操作都随机的发送到readHost。        writeType=“2”,所有写操作都随机的在writeHost、readhost分上发。dbType指定数据库类型,支持oracle、mongodb等dbDriver指定连接后端数据库使用的Driver,目前可选的值有native和JDBC。--><dataHost name="127.0.0.1" maxCon="1000" minCon="10" balance="0"  writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100"><!-- heartbeat标签指定后端数据库进行心跳检查的语句。例如,MYSQL可以使用select user(),Oracle可以使用select 1 from dual等--><heartbeat>select user()</heartbeat><writeHost host="hostM1" url="127.0.0.1:3306" user="root"   password="root"><!-- <readHost host="hostS2" url="192.168.1.200:3306" user="root" password="xxx" /> --></writeHost><!-- <writeHost host="hostS1" url="localhost:3316" user="root"   password="123456" /> --></dataHost></mycat:schema>

--修改server.xml文件


        <!-- 配置根用户和密码,这里的TESTDB需要和schema.xml配置的名称一致 --><user name="root"><property name="password">123456</property><property name="schemas">TESTDB</property></user><!-- 配置用户和密码,设置权限为只读 --><user name="test"><property name="password">123456</property><property name="schemas">TESTDB</property><property name="readOnly">true</property></user>


4:创建数据库,启动mycat,连接测试。

注意:测试时保证mycat配置的数据库和表在mysql数据库上已经存在

--连接mysql,创建db1、db2、db3三个数据库



--点击mycat/bin目录下的startup_nowrap.bat启动MyCat



--使用navicat连接Mycat(就像连接mysql一样)




--测试、创建company表、并插入数据

CREATE TABLE company(id int,name varchar(255));INSERT INTO company (id, name) VALUES (2, '飞翔的肌肉');

--观察mysql上db1、db2、db3都创建了company表,并有了数据。


ok,结束了

原创粉丝点击