错误如下:
Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Unsupported command
The error may exist in class path resource [mapper/WholesaleOrderDAOMapper.xml]
The error may involve defaultParameterMap
The error occurred while setting parameters
SQL: SELECT ....
项目多个模块,不同sql都会不时报出这个错误,开始我以为是sql写的有问题,后面发现都能正常执行;后面觉得可能是sql太复杂,执行慢超时什么的,但是有的sql很简单也报这个错误。在百度,谷歌,mysql官网,stack overflow等网站都搜索过,但是找不到这个Unsupported command的原因,这个异常的信息倒是有,不过别人都是一些其他的原因,比如连接池连接过多什么的。
后来,发现mycat的ServerQueryBuilder这个类中会对sqlType进行判断,当判断为KILLED_QUERY时就会报错Unsupported command,而我们的项目确实用了mycat做读写分离,这些select语句应该就是mycat报的错,事实上mycat错误日志有这个错误打印。
然后就难以再查下去了,我还是不知道是什么地方发的KILL QUERY xxx命令,而mycat不支持该命令,才报了这个错,现在也没有解决。