码迷,mamicode.com
首页 > 数据库 > 详细

com.mysql.jdbc.PacketTooBigException: Packet for query is too large (2280 > 2048).异常的解决方法

时间:2017-10-31 22:15:33      阅读:331      评论:0      收藏:0      [点我收藏+]

标签:--   异常   sock   setting   var   request   linux   gen   result   

今天碰到了一个如上的异常,在执行一个查询功能时后台会报错,没有返回查询结果。

一般是Linux服务器的mysql的配置文件出现问题(同样的数据在本地不报错),mysql重启时可能会重置配置文件导致,或者被人恶意修改。

我的报错如下:

严重: Servlet.service() for servlet [dispatcherServlet] in context with path [/******] threw exception [Request processing failed; nested exception is org.hibernate.exception.GenericJDBCException: could not extract ResultSet] with root cause
com.mysql.jdbc.PacketTooBigException: Packet for query is too large (2280 > 2048). You can change this value on the server by setting the max_allowed_packet‘ variable.

网上查了一些方法,主要问题就是max_allowed_packet 参数不符合要求,总结如下

找到my.cnf配置文件,Linux下输入命令  mysql --help | grep my.cnf 

 技术分享

如下显示了几个路径,但是可能有些路径是没有文件的,一般是默认在第一个 /etc/my.cnf(总之找到这个文件就可以)

也有可能没有该配置文件,就可以在etc下新建一个my.cnf文件

找到配置文件后在最后加一列   max_allowed_packet=32M

重启mysql服务  service mysqld restart 

下面是我的配置文件:

 

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
lower_case_table_names=1
max_allowed_packet=100M

symbolic-links=0


sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
max_allowed_packet=32M

以上仅供参考

以后再遇到此类问题可以直接查看my.cnf配置是否被修改

com.mysql.jdbc.PacketTooBigException: Packet for query is too large (2280 > 2048).异常的解决方法

标签:--   异常   sock   setting   var   request   linux   gen   result   

原文地址:http://www.cnblogs.com/riiicc/p/7763790.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!