Mycat 数据库中间件 安装 & 配置 [ 哔哔大数据 ]
大数据男孩 文章 正文
明妃
{{nature("2022-08-14 17:23:18")}}更新说明
- 什么是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
[]()
插入数据
在插入数据时,分片规则字段数据尽量不要太接近,不然看不出效果。
[]()
{{nature('2020-01-02 16:47:07')}} {{format('12641')}}人已阅读
{{nature('2019-12-11 20:43:10')}} {{format('9527')}}人已阅读
{{nature('2019-12-26 17:20:52')}} {{format('7573')}}人已阅读
{{nature('2019-12-26 16:03:55')}} {{format('5017')}}人已阅读
目录
标签云
一言
评论 0
{{userInfo.data?.nickname}}
{{userInfo.data?.email}}