首先下载mycat的win安装包,下载地址:

https://github.com/MyCATApache/Mycat-download

下载后直接解压缩

例如我这里解压缩到 d:\mycat

首先要配置环境变量

新建一个系统变量:MYCAT_HOME,值为 d:\mycat

编辑path环境变量,增加 %MYCAT_HOME%\bin;

完成重启

然后直接双击运行bin目录下的startup_nowrap.bat文件,如果运行成功会显示如下:


此时mycat已经成功运行。

可以用cmd命令行连接mysql 测试是否能连接

mysql -uroot -p123456 -P8066 -h127.0.0.1

startup_nowrap.bat运行失败的情况:

首先需要在cmd命令行运行startup_nowrap.bat,然后查看他的报错信息。Mycat需要jdk支持,并设置正确的环境变量。具体方法请参考网上的教程。

运行失败主要原因还是环境变量设置出错或者JDK的路径问题

原始的startup_nowrap.bat文件内容如下

我碰到过这几种错误:

1、Error: missing`server' JVM at `C:\Java\jre1.8\bin\server\jvm.dll'.

Please install or use the JRE or JDK thatcontains these missing components.

这个错误是因为JAVA_HOME路径没有设置正确,解决方法是在环境变量中设置正确的JAVA_HOME或者将set "JAVA_CMD=java"这一行改为你的JDK地址,比如set"JAVA_CMD=C:\Java\jdk1.8.0_144\bin\java",即可运行成功。

2、Error occurredduring initialization of VM

Could not reserve enough space for2097152KB object heap

这个错误是因为设置的内存超出了你的实际物理内存问题,我将他修改为-Xms512M -Xmx512M 即可通过运行。

也可以用navicat连接mycat

测试运行成功后,我们需要对MYCAT进行一些配置。

--bin 启动目录

--conf 配置文件存放配置文件:

--server.xml:是Mycat服务器参数调整和用户授权的配置文件。

--schema.xml:是逻辑库定义和表以及分片定义的配置文件。

--rule.xml:  是分片规则的配置文件,分片规则的具体一些参数信息单独存放为文件,也在这个目录下,配置文件修改需要重启MyCAT。

首先配置server.xml

因为是测试用,只要配置好mysql用户和数据库即可

然后是schema.xml


逻辑库配置

 <schema name="pay" checkSQLschema="false" sqlMaxLimit="100"><table name="order_info" primaryKey="id" autoIncrement="true"  dataNode="dn1,dn2,dn3,dn4" rule="mod-long" /></schema>

Schema 定义了逻辑库,其中的table定义了逻辑表

table 标签 是逻辑表的配置 其中

name代表表名,

dataNode代表表对应的分片,

Mycat默认采用分库方式,也就是一个表映射到不同的库上,

rule代表表要采用的数据切分方式,名称对应到rule.xml中的对应配置,如果要分片必须配置。

配置分片(dataNode)

 <dataNode name="user" dataHost="host1" database="user" /><dataNode name="dn1" dataHost="host1" database="pay1" /><dataNode name="dn2" dataHost="host2" database="pay1" /><dataNode name="dn3" dataHost="host3" database="pay1" /><dataNode name="dn4" dataHost="host4" database="pay1" /><dataNode name="log" dataHost="host1" database="log" />

表切分后需要配置映射到哪几个数据库中,Mycat的分片实际上就是库的别名,例如上面例子配置了4个分片dn1,dn2,dn3,dn4 分别对应到物理机映射dataHost host1,host2,host3,host4这4个服务器的数据库上。

 配置物理库分片映射(dataHost)

 <dataHost name="host1" maxCon="1000" minCon="10" balance="0"writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100"><heartbeat>select user()</heartbeat><writeHost host="hostM1" url="127.0.0.1:3306" user="root" password="123456" ><readHost host="hostS1" url="127.0.0.1:3306" user="root" password="123456" /></writeHost></dataHost>

Mycat作为数据库代理需要逻辑库,逻辑用户,表切分后需要配置分片,分片也就需要映射到真实的物理主机上,至于是映射到一台还是一台的多个实例上,Mycat并不关心,只需要配置好映射即可,例如例子中:

配置了一个名为host1的物理主机(dataHost)映射。

heartbeat 标签代表Mycat需要对物理库心跳检测的语句,正常情况下生产案例可能配置主从,或者多写或者单库,无论哪种情况Mycat都需要维持到数据库的数据源连接,因此需要定时检查后端连接可以性,心跳语句就是来作为心跳检测。

writeHost 此标签代表 一个逻辑主机(dataHost)对应的后端的物理主机映射,例如例子中写库hostM1 映射到127.0.0.1:3306。如果后端需要做读写分离或者多写或者主从则通过配置 多个writeHost 或者readHost即可。

dataHost 标签中的 writeType balance 等标签则是不同的策略,具体参考指南。

最后我们看看role.xml表切分规则配置

 <tableRule name="mod-long"><rule><columns>id</columns><algorithm>mod-long</algorithm></rule></tableRule>
 <function name="mod-long" class="io.mycat.route.function.PartitionByMod"><!-- how many data nodes --><property name="count">4</property></function>

在前面我们配置order_info表的切分规则为mod-long,下面是各部分定义

tableRule

name 为schema.xml 中table 标签中对应的 rule="mod-long" ,也就是配置表的分片规则,

columns 是表的切分字段: id 主键ID。

algorithm 是规则对应的切分规则:映射到function 的name。

function

function 配置是分片规则的配置。

name 为切分规则的名称,名字人员取,但是需要与tableRule 中匹配。

class 是切分规则对应的切分类,写死,需要哪种规则则配置哪种,例如本例子是取模分片:io.mycat.route.function.PartitionByMod

property 标签是切分规则对应的不同属性,不同的切分规则配置不同。本例子中是按4取模。

全部配置修改好后,重新启动下MYCAT服务,则规则开始生效

我们做个简单的测试

分别在4台服务器上建立好同样的数据库pay1和表order_info

---- Database: `pay1`--CREATE DATABASE IF NOT EXISTS `pay1` DEFAULT CHARACTER SETlatin1 COLLATE latin1_swedish_ci;USE `pay1`;-- ------------------------------------------------------------ 表的结构 `order_info`--CREATE TABLE `order_info` (`id` int(10)UNSIGNED NOT NULL COMMENT 'ID',`uid` int(10)UNSIGNED NOT NULL COMMENT '用户ID',`name` varchar(20)NOT NULL COMMENT '订单名',`add_time`timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间') ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='订单表';

然后建立一个测试的文件 test.php,插入一些测试数据

<?php$link = mysqli_connect('127.0.0.1','root','123456','pay','8066') or die('Database not connect!');//连接数据库mysqli_query($link,"set names utf8");$sql = "INSERT INTO `order_info`(`id`,`uid`,`name`) VALUES";for($i=1;$i<100;$i++){$sql .= "('$i','$i','3'),";  }$sql = substr($sql, 0,-1);$rst = mysqli_query ( $link,$sql );?>

执行完毕后就可以看到数据库中的结果:

windows下安装配置mycat相关推荐

  1. Windows下安装配置SubVersion的简明步骤

    Windows下安装配置SubVersion的简明步骤 [使用的安装程序和文档说明] svn-1.4.0-setup.exe:Subversion服务端1.4.0安装程序: SubService.ra ...

  2. Windows下安装配置ant

    1.ant安装 请从官网下载ant的*.zip格式的安装包, Windows建议下载*.zip版本, Linux建议下载*.gz版本. 2.配置环境变量 解压之后,在Windows中配置环境变量, 在 ...

  3. 在windows下安装配置Ulipad

    在windows下安装配置Ulipad 今天推荐一款轻便的文本编辑器Ulipad,用来写一些小的Python脚本非常方便. Ulipad下载地址: https://github.com/limodou ...

  4. tflearn教程_环境部署——Windows下安装配置tensorflow和tflearn

    原标题:环境部署--Windows下安装配置tensorflow和tflearn 本例依赖Windows 7 x64位系统,由于Tensorflow依赖于Python,以及大量的相关依赖包,为了免除大 ...

  5. python开发工具及环境配置_python_在windows下安装配置python开发环境及Ulipad开发工具...

    最近开始学习Python,在网上寻找一下比较好的IDE.因为以前用C#做开发的,用Visual Studio作为IDE,鉴于用惯了VS这么强大的IDE,所以对IDE有一定的依赖性. Python的ID ...

  6. OpenEye | Windows下安装配置OpenEye

    OpenEye简介 OpenEye是一款用于药物先导发现和改造的专业工具,它不仅考虑了严格的科学意义.还兼顾计算速度.可拓展性以及平台可用性.OpenEye药物设计软件聚焦于先导物识别与优化,尤其擅长 ...

  7. windows下安装配置cwrsync

    CwRsync是基于cygwin平台的rsync软件包,支持windows对windows.windows对Linux.Linux对 windows高效文件同步.由于CwRsync已经集成了cygwi ...

  8. RabbitMq学习笔记001---RabbitMq在Windows下安装配置

    rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rab ...

  9. Maven——windows下安装配置及IDEA设置本地仓库的步骤总结

    关注微信公众号:CodingTechWork,一起学习进步. 引言   到手新电脑,对于程序员来说,一堆软件需要重装,当然必不可少的JDK.Maven.IDEA是逃不过的.本文主要记录maven的安装 ...

最新文章

  1. 聚合Aggregation与合成Composition
  2. python matplotlib散点图-Matplotlib scatter绘制散点图的方法实现
  3. 北京内推 | 美团用户平台NLP中心招聘图学习(GNN)方向实习生
  4. All is about C!
  5. 创建安卓模拟器的两种方式及常用Android命令介绍
  6. VS高版本编写C程序的C4996错误
  7. php swoole能干,PHP swoole怎么用
  8. ubuntu安装中文字体,python plt 绘图显示中文
  9. BAT互联网大厂的后端主流技术栈是啥?
  10. jsp语法 --模板元素,表达式,脚本片段,声明,注释
  11. 实施工程师职业的前景和发展思考
  12. highcharts 解决数据提示框展示的内容太多 ,部分内容无法显示的问题
  13. 大一新生 电脑小白如何选择电脑 电脑知识全面讲解
  14. Single Radio Voice Call Continuity (SRVCC)
  15. C++ 设计模式 建造者模式(复杂对象的构建与其表示分离)肯德基不同烧鸡的制作过程
  16. 【建议收藏】新到手的电脑Windows10/11系统优化、使用规范和技巧及软件推荐,提升范电脑性能和体验
  17. Ural_1671. Anansi's Cobweb(并查集)
  18. CAD制图软件中多线段显示不正确怎么办?
  19. Lodop打印设计(PRINT_DESIGN)介绍
  20. 单片机、ARM、MUC、DSP、FPGA、嵌入式

热门文章

  1. 梯度回归模型预测PPI
  2. 大话nbu四(nbu备份恢复catalog)
  3. 链路层协议——SLIP协议和PPP协议
  4. 逻辑英语结构【重点】
  5. 采用先进先出原则对货物的库存进行处理
  6. 如何查看线上服务器日志
  7. 天堂向左,深圳往右 第十三章第十四章
  8. 特殊符号(一)—反斜杠 ” \ “(旋转光标和倒计时的实现)
  9. 验证码输入错误怎么再次刷新验证码
  10. 机器人对话常用语模板_世界首个机器人观音在岛国问世,请问AI开光还会远吗?...