windows下mycat初体验

一.安装与启动

下载地址

http://dl.mycat.io/1.6-RELEASE/

下载完成解压后,即为下面这个目录
在这里插入图片描述

参数配置

在mycat运行之前,一般需要修改JVM配置参数,打开conf/wrapper.conf文件,如下为我的配置参数

# Java Application
wrapper.java.command=C:\Program Files (x86)\Java\jdk1.8.0_25\bin\java.exe

# Java Additional Parameters
#wrapper.java.additional.1=
wrapper.java.additional.1=-DMYCAT_HOME=.
wrapper.java.additional.2=-server
wrapper.java.additional.3=-XX:MaxPermSize=64M
wrapper.java.additional.4=-XX:+AggressiveOpts
wrapper.java.additional.5=-XX:MaxDirectMemorySize=100M
wrapper.java.additional.6=-Dcom.sun.management.jmxremote
wrapper.java.additional.7=-Dcom.sun.management.jmxremote.port=1984
wrapper.java.additional.8=-Dcom.sun.management.jmxremote.authenticate=false
wrapper.java.additional.9=-Dcom.sun.management.jmxremote.ssl=false
wrapper.java.additional.10=-Xmx100m
wrapper.java.additional.11=-Xms100m
wrapper.java.additional.12=-XX:+UseParNewGC
wrapper.java.additional.13=-XX:+UseConcMarkSweepGC
wrapper.java.additional.14=-XX:+UseCMSCompactAtFullCollection
wrapper.java.additional.15=-XX:CMSFullGCsBeforeCompaction=0
wrapper.java.additional.16=-XX:CMSInitiatingOccupancyFraction=70
启动

在安装目录下的bin目录,运行startup_nowrap.bat,如果出现闪退,在cmd 命令行运行,可以查看出错原因

如果遇到这问题

could not reserve enough space for 2097152KB object heap 

除了rapper.xml中内存参数外,还需修改mycat/bin/startup_nowrap.sh下的jvm参数,将参数值改为小一些

“%JAVA_CMD%” -server -Xms512M -Xmx600M -XX:MaxPermSize=600M -XX:+AggressiveOpts

再次运行

E:\mycat\bin>“C:\Program Files (x86)\Java\jdk1.8.0_25/bin/java” -server -Xms512M -Xmx600M -XX:MaxPermSize=600M -XX:+AggressiveOpts -XX:MaxDirectMemorySize=1G -DMYCAT_HOME=E:\mycat -cp “…\conf;…\lib*” io.mycat.MycatStartup
MyCAT Server startup successfully. see logs in logs/mycat.log

启动成功

二.Mycat连接测试

1.配置mycat与mysql的连接相关参数

在安装目录下的config目录下的schema.xml配置文件,
schema.xml配置文件是mycat中重要的配置文件之一,它涵盖了mycat的逻辑库、表、分片规则、分批按节点及数据源。主要配置本机的mysql连接信息。

如下为我的配置相关参数
为了方便测试,我这边是在本机的里面创建3个数据库来测试,mycat,mycat2,mycat3

    <dataNode name="dn1" dataHost="localhost1" database="mycat" />
	<dataNode name="dn2" dataHost="localhost1" database="mycat2" />
	<dataNode name="dn3" dataHost="localhost1" database="mycat3" />
	
	<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="localhost:3306" user="root"  password="888888">
			<!-- <readHost host="hostS2" url="localhost:3306" user="root"  password="888888" /> -->
		</writeHost>

		<writeHost host="hostS1" url="localhost:3316" user="root"	   password="123456" />
	</dataHost>
2.测试连接

mycat的用户密码在config目录的server.xml里面有,初始化值为
端口号: 8066 用户:root 密码: 123456

在这里插入图片描述
在这里插入图片描述

3.测试使用

先在本机创建三个不同的数据库mycat,mycat2,mycat3
在这里插入图片描述

3.1全局表测试

在mycat下面执行命令

此时我们创建表company,此表在配置文件schemal.xml有定义,类型为global,节点在dn1,2,3

<table name="company" primaryKey="ID" type="global" dataNode="dn1,dn2,dn3" />
USE TESTDB;
create table company(
id int not null primary key
,name varchar(100)
);

查看执行命令的状态
在这里插入图片描述
此时三个节点的库都已创建该表了
在这里插入图片描述
测试插入数据

insert into company(id,name) values(1,'company1');

此时三个节点的数据库都已添加了该数据
在这里插入图片描述

3.2 测试水平分表分片

在schema.xml里面有定义了表travelrecord,

<table name="travelrecord" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" />

分片规则为auto-sharding-long,这是最简单的范围约定规则

# K=1000,M=10000.
>0-500M=0
500M-1000M=1
1000M-1500M=2

此默认配置可以在配置文件autopartition-long.txt 修改其规则

在命令执行如下命令创建travelrecord表:

explain  CREATE TABLE travelrecord (
  id int(11) NOT NULL AUTO_INCREMENT,
  name varchar(255) NOT NULL,
  PRIMARY KEY (id)
) 

查看执行状态,三个节点都已创建成功
在这里插入图片描述
测试插入数据

explain  insert into travelrecord (id,name) values(2,'test');

查看插入状态
在这里插入图片描述
此时只插入到节点1,查看数据,其他节点无数据插入
在这里插入图片描述

如果在mycat插入数据的时候遇到次问题

[Err] 1064 - partition table, insert must provide ColumnList

则需把所有的列明都添加上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值