Packet for query is too large (84 > -1).
ibatis工程使用resin配置mysql出现Packet for query is too large (84 > -1).
错误。
windows下的resin配置连接mysql,常用的安全的做法是将数据库信息配置到conf目录下的resin.xml文件中。
因为resin连接mysql不是必须的,所以resin本身没有提供mysql-connector的jar包,需要自己加到resin目录下的lib里面,我加了个mysql-connector-java-5.1.45-bin.jar
进去,然而在运行工程执行数据库查询操作的时候,却出现了问题,报如下错误:
1 | org.springframework.dao.TransientDataAccessResourceException: SqlMapClient operation; SQL []; |
只进行查询却出现Packet for query is too large
,而且查询的条件只有几个字母,网上搜了很多解答,都是说需要把mysql的max_allowed_packet
参数调大,但是我通过show VARIABLES like '%max_allowed_packet%';
查询的结果也很大,如果是参数过小,应该是提示大于数据库中设置的packet的值,而不应该报-1。
最后发现有个帖子说是mysql-connector-java
jar包的版本问题,版本不能太高,随后我将mysql-connector-java-5.1.45-bin.jar
换成mysql-connector-java-5.1.26-bin.jar
,不再出现packet错误,问题解决。
可能是因为我用的是ibatis2.0
版本的缘故,不支持太高的mysql连接jar版本,换成mysql-connector-java-5.1.40
以下版本即可解决Packet for query is too large (84 > -1)
问题。
Packet for query is too large (84 > -1).
https://wonderomg.github.io/2018/03/15/Packet for query is too large/