说明
- 什么是Mycat
- 一个彻底开源的,面向企业应用开发的大数据库集群
- 支持事务、ACID、可以替代MySQL的加强版数据库
- 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群
- 一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server
- 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品
- 一个新颖的数据库中间件产品
- 官网:http://www.mycat.org.cn/
- 开源地址:https://github.com/MyCATApache/Mycat-Server
相关版本配置说明
软件 | 版本 |
---|---|
Mycat | Mycat-server-1.6.7.5 |
MySQL | 5.7 |
下载 Mycat 解压到任意目录
配置文件说明
进入 Mycat 的
conf/
目录下,主要注意这3
个配置文件
- schema.xml: 中定义逻辑库,表、分片节点等内容
- rule.xml: 中定义分片规则;
- server.xml: 中定义用户以及系统相关变量,如端口等
配置 schema.xml 文件
官方文件里 注释太多,太杂,看着太费劲,可以先进行删减
该配置说明:
逻辑库名TESTDB
,相当于一个数据库,逻辑表名table
,相当于数据库里的一张表,这张表里的数据放在了 dn1,dn2,dn3,dn4
这个四个真实的数据库里。
<?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat="http://io.mycat/"> <!-- name 逻辑数据名称 取消sql限制,把 sqlMaxLimit = "-1" --> <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100"> <!-- name:逻辑表名称 dataNode:逻辑表数据存放的节点 rule:逻辑表的分片规则 规则对应 rule.xml 里面--> <table name="sbtest1" dataNode="dn1,dn2,dn3,dn4" rule="rule1" /> <!-- 逻辑表可以配置多个 --> </schema> <!-- 数据节点对应的数据库,这里都配置在一个机器上,可分布式配置 --> <dataNode name="dn1" dataHost="localhost" database="db1" /> <dataNode name="dn2" dataHost="localhost" database="db2" /> <dataNode name="dn3" dataHost="localhost" database="db3" /> <dataNode name="dn4" dataHost="localhost" database="db4" /> <!-- 数据的节点的链接信息,name 需要对应上 <dataNode/> 标签里的 dataHost --> <dataHost name="localhost" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <!-- 心跳语句 --> <heartbeat>select user()</heartbeat> <!--配置写入主机 --> <writeHost host="hostM1" url="localhost:3306" user="root" password="123456"></writeHost> </dataHost> </mycat:schema>
配置 server.xml 文件
该文件可以不用配置
配置 rule.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mycat:rule SYSTEM "rule.dtd"> <mycat:rule xmlns:mycat="http://io.mycat/"> <!-- 分片规则名称 --> <tableRule name="rule1"> <rule> <!-- 分片字段 --> <columns>id</columns> <!-- 分片的方法 --> <algorithm>mod-long</algorithm> </rule> </tableRule> <function name="mod-long" class="io.mycat.route.function.PartitionByMod"> <!-- 分片的节点数量 --> <property name="count">4</property> </function> </mycat:rule>
MySQL 创库 创表
创建真实库
创建真实表
启动 Mycat
进入Mycat
注意在 Linux 下,如果进入MySQL需要端口,一定要加上
host
,不然指定的端口不会生效。
mysql -uroot -h 127.0.0.1 -P 8066 -p
插入数据
在插入数据时,分片规则字段数据尽量不要太接近,不然看不出效果。
版权声明:《 Mycat 数据库中间件 安装 & 配置 》为明妃原创文章,转载请注明出处!
最后编辑:2020-6-14 11:06:21