windows下配置安装 Mycat详细步骤

Windows
第一步
下载MyCat:

https://github.com/MyCATApache/Mycat-Server/releases

第二步
解压压缩包得到以下目录。
windows下配置安装 Mycat详细步骤_第1张图片

第三步
新建一个系统变量:MYCAT_HOME,值为 d:\mycat
windows下配置安装 Mycat详细步骤_第2张图片
第四步
编辑path环境变量,增加 %MYCAT_HOME%\bin;
在这里插入图片描述
第五步
然后直接双击运行bin目录下的startup_nowrap.bat文件,如果运行成功会显示如下:
windows下配置安装 Mycat详细步骤_第3张图片
主要配置介绍
server.xml :定义用户以及系统相关变量,如端口等;
schema.xml :定义逻辑库,表、分片节点等内容;
rule.xml :定义分片规则。

server.xml
在server.xml中主要配置mycat。如:访问mycat的用户密码、端口号等。如下图

<!-- name:mycat用户名 -->
<user name="root" defaultAccount="true">
    <!-- mycat密码 -->
    <property name="password">maluole</property>
    <!-- 对应schema.xml文件中的schema标签的name -->
    <property name="schemas">mycat1</property>
</user>

windows下配置安装 Mycat详细步骤_第4张图片

schema.xml
schema.xml文件中,主要对逻辑库,表、分片节点等内容

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
	<!-- name:自定义名字,对应server.xml中的schemas 
		 checkSQLschema:查询时是否增加库名称。如db1.table。false不加
		 sqlMaxLimit :一次最大读取行数
	-->
	<schema name="mycat1" checkSQLschema="true" sqlMaxLimit="100">
		<!-- 
		 table为需要分库分表的数据表
		 name:对应数据库中的表名 
		 dataNode:对应下面dataNode节点的名字,即:需要拆分到的库。多个用逗号分隔
		 primaryKey:当前数据库表中对应的主键
		 rule:排序规则名称,对应rule.xml文件tableRule的name
		-->
		<table name="books" dataNode="mycat1datanode,mycat2datanode" primaryKey="id"  rule="auto-sharding-long"/>
	</schema>
	<!-- 
		 dataNode为需要用到的库
		 name:自定义名字,需要与上面table中dataNode对应
		 dataHost:对应下面dataHost的名字,即:对应该数据库的登陆名、密码等设置
		 database:数据库名称
	-->
	<dataNode name="mycat1datanode" dataHost="localhost1" database="mycat1" />
	<dataNode name="mycat2datanode" dataHost="localhost1" database="mycat2" />
	<!-- 
		 name:唯一标识 dataHost 标签,供上层的标签使用
		 maxCon	指定每个读写实例连接池的最大连接。
		 minCon	指定每个读写实例连接池的最小连接,初始化连接池的大小。
		 balance	负载均衡类型,目前的取值有4 种: “0, 不开启读写分离机制,所有读操作都发送到当前可用的 writeHost 上。 “1”,全部的 readHost 与 stand by writeHost 参与 select 语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且 M1 与 M2 互为主备),正常情况下,M2,S1,S2 都参与 select 语句的负载均衡。”2”,所有读操作都随机的在 writeHost、readhost 上分发。”3”,所有读请求随机的分发到 wiriterHost 对应的 readhost 执行,writerHost 不负担读压writeType 1. writeType=0, 所有写操作发送到配置的第一个 writeHost,第一个挂了切到还生存的第二个writeHost,重新启动后已切换后的为准,切换记录在配置文件中:dnindex.properties .2. writeType=1”,所有写操作都随机的发送到配置的 writeHost,1.5 以后废弃不推荐。默认0就好了!
		 dbType	指定后端连接的数据库类型,目前支持二进制的 mysql 协议,还有其他使用 JDBC 连接的数据库。例如:mongodb、oracle、spark 等.
		 dbDriver	指定连接后端数据库使用的 Driver,目前可选的值有 native 和 JDBC。使用 native 的话,因为这个值执行的是二进制的 mysql 协议,所以可以使用 mysql 和 maridb。其他类型的数据库则需要使用 JDBC 驱动来支持。
		 switchType	“-1” 表示不自动切换; “1” 默认值,自动切换; “2” 基于 MySQL 主从同步的状态决定是否切换心跳语句为 show slave status; “3” 基于 MySQL galary cluster 的切换机制(适合集群)(1.4.1)心跳语句为 show status like ‘wsrep%.
		 tempReadHostAvailable	如果配置了这个属性 writeHost 下面的 readHost 仍旧可用,默认 0 可配置(01)。
	-->
	<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
			  writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1"  slaveThreshold="100">
		<!--
			这个标签内指明用于和后端数据库进行心跳检查的语句。
			例如:MYSQL 可以使用 select user(),Oracle 可以使用 select 1 from dual 等。
		-->
		<heartbeat>select user()</heartbeat>
		<writeHost host="hostM1" url="jdbc:mysql://localhost:3306" user="root" password="maluole"></writeHost>
	</dataHost>
</mycat:schema>

rule.xml
rule标签定义分片规则,就是数据根据什么规则拆分。此处需要注意,拆分的节点要和真是节点一样。比如一共就配置了2个库做拆分。那么对应的规则文件也只配置2个。
比如在scheme.xml中的table配置

<table name="books" dataNode="mycat1datanode,mycat2datanode" primaryKey="id"  rule="auto-sharding-long"/>

分片规则:【rule=“auto-sharding-long” 】
库实例:【dataNode=“mycat1datanode,mycat2datanode”】
在rule.xml文件找到对应的【auto-sharding-long】,如图
windows下配置安装 Mycat详细步骤_第5张图片
然后根据【rang-long】找到对应的【function】。如图
在这里插入图片描述
具体的分片规则在文件中查看。如图

windows下配置安装 Mycat详细步骤_第6张图片
【0-500=0】:id在0<=id<=500之间都在第一个库
【500-1K】id在500<=id<=1000之间都在第二个库
注意:如果没有第三个库不要配置

# range start-end ,data node index
# K=1000,M=10000.
0-500=0
500-1K=1

你可能感兴趣的:(windows下配置安装 Mycat详细步骤)