windows安装Mycat并测试
相关文章:
- [Mycat 简介]
- [Mycat 配置文件server.xml]
- [Mycat 配置文件schema.xml]
- [Mycat 配置文件rule.xml]
- [springboot + mybatis + mycat整合]
1、下载系统安装包
选择相应的版本进行下载,地址:http://dl.mycat.io/ 。Mycat数据库分库分表中间件介绍 http://www.mycat.io/
2、安装
安装mycat前需要保证系统已安装过jdk和mysql,将下载好的mycat安装包解压到某个目录下,然后进入mycat解压目录下的bin目录(打开cmd控制台确保是以管理员身份运行),执行安装命令:
D:\develop\Mycat\bin>mycat.bat install
3、常用命令
可以使用如下命令启动mycat服务
mycat.bat start
启动后可以通过如下命令查看mycat的运行状态:
mycat.bat status
可以使用如下命令停止mycat服务
mycat.bat stop
重启服务命令
mycat.bat restart
4、测试
4.1 配置文件修改
进入conf目录,打开schema.xml配置文件,schema.xml配置文件是mycat中重要的配置文件之一,它涵盖了mycat的逻辑库、表、分片规则、分批按节点及数据源。
对默认的schema.xml进行简单的修改配置,主要配置本机的mysql连接信息。找到dataHost节点,按照当前自己mysql的配置信息来修改配置。如下:
<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="root"> <!-- can have multi read hosts --> <!--<readHost host="hostS2" url="192.168.1.200:3306" user="root" password="xxx" />--> </writeHost> <!-- <writeHost host="hostS1" url="localhost:3316" user="root" password="123456" /> --> <!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> --> </dataHost>
修改了hostM1的连接密码,注释了名称为hostS2的只读标签和名称为hostM2的写标签
4.2 mycat连接
和mysql连接一样,就是端口改为8066,用户名和密码可以查看mycat conf目录中的server.xml中的定义,本次使用的是默认的root,123456来连接,连接成功后只能操作名为TESTDB的数据库。
4.3 在mysql中创建数据库
按照schema.xml配置中的示例,我们需要建立分别名为db1、db2、db3的数据库。连接mysql,建立相关的数据库:
create database db1 character set utf8;
create database db2 character set utf8;
create database db3 character set utf8;
4.4 在mycat中创建全局表测试
create table company(id int not null primary key,name varchar(100),sharding_id int not null);
company表示全局表,使用explain create table company(id int not null primary key,name varchar(100),sharding_id int not null);查看执行计划。如图:
在mysql中可以看到db1,db2,db3数据库中出现company表
接着插入一条测试数据
mysql> insert into company(id,name,sharding_id) values(1,'hello, mycat',10000);
查看执行状态如下:
查看mysql中company表的数据:
可以看到三个库的company表都有插入数据
4.5 水平表测试
mysql> create table travelrecord(id int not null primary key,name varchar(100));
查看执行计划如下图:
查看mysql的db1,db2,db3数据库:
接着插入一条数据:
mysql> insert into travelrecord(id,name) values(1,'mycat');
查看执行计划如下图:
从上面可以看到只用dn1节点插入了数据,查看mysql的db1,db2,db3三个数据库的travelrecord表的数据
可以看到只有db1中的travelrecord表有插入数据
5、问题
5.1 启动服务是报错 The Mycat-server service was launched, but failed to start。解决:
修改mycat下的\conf\wrapper.conf文件中的
wrapper.java.command=java
改成
wrapper.java.command=C:\Java\jdk1.7.0_21\bin\java.exe
指定java
5.2 启动失败 The specified size exceeds the maximum representable size。解决:
修改mycat下的\conf\wrapper.conf文件中的
wrapper.java.additional.10=-Xmx4G wrapper.java.additional.11=-Xms1G
改为:
wrapper.java.additional.10=-Xmx512M wrapper.java.additional.11=-Xms64M
重新启动即可