MyCat入门
MyCat 中间件具体做什么的百度一下你就知道,本人只是记录下自己踩的坑
建议:不懂的,可以先去看官网介绍,官网推出的文档:mycat权威指南 不错的。看人多看看,主要是理论知识点懂了就好,具体使用全是配置文件,因为具体的数据扩容算法都是别人写好的,我们只是copy,以下只是简单的使用。
官网链接
前置条件
本教程是在window环境下运行的,实际生产推荐在Linux上运行。
必备条件(自行安装,如果不会装请先打好基础在来学习):
- JDK:建议是1.7及其以上。
- MySQL:必须是5.5及其以上(最好是5.7,现在主流技术都支持5.7,版本低容易导致数据缺失)
下载地址:http://dl.mycat.io/1.6-RELEASE/
流程图: mycat 中间件【展示的就是逻辑库】
正式入门开始:
首先建立三个数据库,创建表,其中tb_user不会拆分,只在db0上存在,role则放在两个数据库中 分别如下
这里简单介绍下 mycat的 主要使用的几个配置文件
conf目录下编辑service.xml,rule.xml,schema.xml三个文件。
service.xml:配置mycat 的用户名密码 数据库名称 对应到schema中的名称
rule.xml:配置拆分规则
schema.xml:配置 数据节点,逻辑物理数据库地址,拆分引入规则名称对应到rule.xml
然后就可以启动测试了
bin目录下的 startup_nowrap.bat 双击就好
说一下遇到的坑(bug),因为是mycat是java语言编写的,具体报错大家可以看控制台或者log
Mycat查表报错find no Route:select * from `db_user`.`users` limit 0, 100
修改schema.xml的 checkSQLschema=“false”,改为true即可
当该值为true时,例如我们执行语句select * from TESTDB.company 。mycat会把语句修改为 select * from company 去掉TESTDB。
本人的navcat不知道为啥有问题,链接mycat后查询表数据总数不一致的。应该是我的个人问题,后面我用cmd 命令窗口看就没问题
看本人的navcat 表数量就不一样