Mycat 1.6.Release [err:java.sql.SQLNonTransientException: find no Route:]

1 篇文章 0 订阅
1 篇文章 0 订阅
 
 
2017-09-15 07:06:13,299 [WARN ][$_NIOREACTOR-3-RW] ServerConnection [id=1, schema=TESTDB, host=127.0.0.1, user=root,txIsolation=3, autocommit=true, schema=TESTDB]SELECT * FROM `test`.`city` LIMIT 0 err:java.sql.SQLNonTransientException:  find no Route:SELECT * FROM `test`.`city` LIMIT 0 java.sql.SQLNonTransientException:  find no Route:SELECT * FROM `test`.`city` LIMIT 0
	at io.mycat.route.parser.druid.impl.DruidSelectParser.tryRoute(DruidSelectParser.java:439)
	at io.mycat.route.parser.druid.impl.DruidSelectParser.changeSql(DruidSelectParser.java:287)
	at io.mycat.route.parser.druid.impl.DefaultDruidParser.parser(DefaultDruidParser.java:67)
	at io.mycat.route.impl.DruidMycatRouteStrategy.routeNormalSqlWithAST(DruidMycatRouteStrategy.java:84)
	at io.mycat.route.impl.AbstractRouteStrategy.route(AbstractRouteStrategy.java:81)
	at io.mycat.route.RouteService.route(RouteService.java:133)
	at io.mycat.server.ServerConnection.routeEndExecuteSQL(ServerConnection.java:276)
	at io.mycat.server.ServerConnection.execute(ServerConnection.java:222)
	at io.mycat.server.handler.SelectHandler.handle(SelectHandler.java:105)
	at io.mycat.server.ServerQueryHandler.query(ServerQueryHandler.java:79)
	at io.mycat.net.FrontendConnection.query(FrontendConnection.java:317)
	at io.mycat.net.FrontendConnection.query(FrontendConnection.java:337)
	at io.mycat.net.handler.FrontendCommandHandler.handle(FrontendCommandHandler.java:71)
	at io.mycat.net.FrontendConnection.rawHandle(FrontendConnection.java:478)
	at io.mycat.net.FrontendConnection.handle(FrontendConnection.java:460)
	at io.mycat.net.AbstractConnection.onReadData(AbstractConnection.java:321)
	at io.mycat.net.NIOSocketWR.asynRead(NIOSocketWR.java:190)
	at io.mycat.net.AbstractConnection.asynRead(AbstractConnection.java:273)
	at io.mycat.net.NIOReactor$RW.run(NIOReactor.java:102)
	at java.lang.Thread.run(Unknown Source)

根据错误信息画出类图

 

解决方法

 

				if(key != null) {
					/* 换个位置
					int pos = key.indexOf(".");
					if(pos> 0) {
						key = key.substring(pos + 1);
					}
					*/
					if(key.equalsIgnoreCase(value)) {
						int pos = key.indexOf(".");
						if(pos> 0) {
							key = key.substring(pos + 1);
						}
						ctx.addTable(key.toUpperCase());
					}
					tableAliasMap.put(key.toUpperCase(), value);
				}if(key != null) {
					/* 换个位置
					int pos = key.indexOf(".");
					if(pos> 0) {
						key = key.substring(pos + 1);
					}
					*/
					if(key.equalsIgnoreCase(value)) {
						int pos = key.indexOf(".");
						if(pos> 0) {
							key = key.substring(pos + 1);
						}
						ctx.addTable(key.toUpperCase());
					}
					tableAliasMap.put(key.toUpperCase(), value);
				}


出现另一问题,(这是系统表记录查询相关信息,如果有用到,不一定适合这种修改方法,可以升级到mycat1.6.5)

 

 

2017-09-15 07:14:23,306 [WARN ][$_NIOREACTOR-3-RW] ServerConnection [id=1, schema=TESTDB, host=127.0.0.1, user=root,txIsolation=3, autocommit=true, schema=TESTDB]SELECT QUERY_ID, SUM(DURATION) AS SUM_DURATION FROM INFORMATION_SCHEMA.PROFILING GROUP BY QUERY_ID err:java.sql.SQLNonTransientException: can't find table define in schema PROFILING schema:TESTDB java.sql.SQLNonTransientException: can't find table define in schema PROFILING schema:TESTDB
	at io.mycat.route.util.RouterUtil.tryRouteForOneTable(RouterUtil.java:1052)
	at io.mycat.route.util.RouterUtil.tryRouteForTables(RouterUtil.java:947)
	at io.mycat.route.parser.druid.impl.DruidSelectParser.tryRoute(DruidSelectParser.java:412)
	at io.mycat.route.parser.druid.impl.DruidSelectParser.changeSql(DruidSelectParser.java:287)
	at io.mycat.route.parser.druid.impl.DefaultDruidParser.parser(DefaultDruidParser.java:67)
	at io.mycat.route.impl.DruidMycatRouteStrategy.routeNormalSqlWithAST(DruidMycatRouteStrategy.java:84)
	at io.mycat.route.impl.AbstractRouteStrategy.route(AbstractRouteStrategy.java:81)
	at io.mycat.route.RouteService.route(RouteService.java:133)
	at io.mycat.server.ServerConnection.routeEndExecuteSQL(ServerConnection.java:276)
	at io.mycat.server.ServerConnection.execute(ServerConnection.java:222)
	at io.mycat.server.handler.SelectHandler.handle(SelectHandler.java:105)
	at io.mycat.server.ServerQueryHandler.query(ServerQueryHandler.java:79)
	at io.mycat.net.FrontendConnection.query(FrontendConnection.java:317)
	at io.mycat.net.FrontendConnection.query(FrontendConnection.java:337)
	at io.mycat.net.handler.FrontendCommandHandler.handle(FrontendCommandHandler.java:71)
	at io.mycat.net.FrontendConnection.rawHandle(FrontendConnection.java:478)
	at io.mycat.net.FrontendConnection.handle(FrontendConnection.java:460)
	at io.mycat.net.AbstractConnection.onReadData(AbstractConnection.java:321)
	at io.mycat.net.NIOSocketWR.asynRead(NIOSocketWR.java:190)
	at io.mycat.net.AbstractConnection.asynRead(AbstractConnection.java:273)
	at io.mycat.net.NIOReactor$RW.run(NIOReactor.java:102)
	at java.lang.Thread.run(Unknown Source)
 (io.mycat.server.ServerConnection:ServerConnection.java:281)


解决方法,再schema.xml中配置此表。

 

 

<table name="PROFILING" primaryKey="QUERY_ID" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" />

 

--------- 2018-10-23 在mycat 1.6.5 中发下如下代码 ----------

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钩子水手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值