Mycat1.6 release版本报错: can't find (root) parent sharding node for sql

2017年11月16


Mycat1.6 release 是目前最新的Mycat的发布版本。同事在使用ER分片时遇到了can't find (root) parent sharding node for sql的错误。

具体情况如下:

在同一个事务中,插入父表及子表记录,父表按某个日期类型的字段用sharding-by-month算法进行分片,然后出现上述错误信息,上网查找资料无果。然后同事就把事务去掉了作为临时解决方案。

今天重新提起这个问题,我亲自试了一下,发现父表使用sharding-by-mod时是没有问题的,只有在sharding-by-month等算法时会出现。

然后打算调试一下,下载了mycat源码。尼玛竟然不报错了!!!源码的版本是1.6.5,。看了是1,.6版本的bug。但是在mycat的github的issues上没见有人提此问题。

然后用源码重新打了个jar包,命名为mycat-1.6.5.jar。扔到发布版的lib下,把原来的Mycat-server-1.6-RELEASE.jar注掉。然后使用mycat.bat start 命令启动Mycat。

尼玛又出鬼了,竟然还是报相同的错误。然后使用startup_nowrapper.bat启动试了竟然又可以了。

搞了半天是wrapper-windows-x86-64.exe这个文件的锅。不知道这个文件是怎么搞的,也不知道Mycat团队为何要搞个exe。

最后把mycat-1.6.5.jar 改名为Mycat-server-1.6-RELEASE.jar就可以了。

Mycat确实有坑。

Mycat关键特性 关键特性 支持SQL92标准 支持MySQL、Oracle、DB2、SQL Server、PostgreSQL等DB的常见SQL语法 遵守Mysql原生协议,跨语言,跨平台,跨数据库的通用中间件代理。 基于心跳的自动故障切换,支持读写分离,支持MySQL主从,以及galera cluster集群。 支持Galera for MySQL集群,Percona Cluster或者MariaDB cluster 基于Nio实现,有效管理线程,解决高并发问题。 支持数据的多片自动路由与聚合,支持sum,count,max等常用的聚合函数,支持跨库分页。 支持单库内部任意join,支持跨库2表join,甚至基于caltlet的多表join。 支持通过全局表,ER关系的分片策略,实现了高效的多表join查询。 支持多租户方案。 支持分布式事务(弱xa)。 支持XA分布式事务(1.6.5)。 支持全局序列号,解决分布式下的主键生成问题。 分片规则丰富,插件化开发,易于扩展。 强大的web,命令行监控。 支持前端作为MySQL通用代理,后端JDBC方式支持Oracle、DB2、SQL Server 、 mongodb 、巨杉。 支持密码加密 支持服务降级 支持IP白名单 支持SQL黑名单、sql注入攻击拦截 支持prepare预编译指令(1.6) 支持非堆内存(Direct Memory)聚合计算(1.6) 支持PostgreSQL的native协议(1.6) 支持mysql和oracle存储过程,out参数、多结果集返回(1.6) 支持zookeeper协调主从切换、zk序列、配置zk化(1.6) 支持库内分表(1.6) 集群基于ZooKeeper管理,在线升级,扩容,智能优化,大数据处理(2.0开发版)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值