Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java com.mysql.jdbc.PacketTooBigException:用于查询的数据包太大(77>;-1)_Java_Mysql_Mysql Connector - Fatal编程技术网

Java com.mysql.jdbc.PacketTooBigException:用于查询的数据包太大(77>;-1)

Java com.mysql.jdbc.PacketTooBigException:用于查询的数据包太大(77>;-1),java,mysql,mysql-connector,Java,Mysql,Mysql Connector,我最近遇到了一个问题,mysql连接器抛出了一个异常,它意味着max_allowed_packet=-1,但是当我查询我的数据库时,它显示如下: 允许的最大数据包数=67108864 错误详细信息如下: 原因:com.mysql.jdbc.PacketTooBigException:用于查询的数据包太大(77>-1)。您可以在 通过设置“max_allowed_packet”变量来设置服务器。在 com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:612

我最近遇到了一个问题,mysql连接器抛出了一个异常,它意味着max_allowed_packet=-1,但是当我查询我的数据库时,它显示如下: 允许的最大数据包数=67108864

错误详细信息如下:

原因:com.mysql.jdbc.PacketTooBigException:用于查询的数据包太大(77>-1)。您可以在 通过设置“max_allowed_packet”变量来设置服务器。在 com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:612) ~[mysql-connector-java-5.1.13.jar:na]at com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:415) ~[mysql-connector-java-5.1.13.jar:na]at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:2581) ~[mysql-connector-java-5.1.13.jar:na]at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:1757) ~[mysql-connector-java-5.1.13.jar:na]at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2171) ~[mysql-connector-java-5.1.13.jar:na]at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2568) ~[mysql-connector-java-5.1.13.jar:na]at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2113) ~[mysql-connector-java-5.1.13.jar:na]at execute(PreparedStatement.java:1364) ~[mysql-connector-java-5.1.13.jar:na]at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:56) ~(mybatis-3.2.5.jar:3.2.5)at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:70) ~(mybatis-3.2.5.jar:3.2.5)at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:57) ~(mybatis-3.2.5.jar:3.2.5)at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:259) ~(mybatis-3.2.5.jar:3.2.5)at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:132) ~(mybatis-3.2.5.jar:3.2.5)at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:105) ~(mybatis-3.2.5.jar:3.2.5)at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:81) ~(mybatis-3.2.5.jar:3.2.5)at sun.reflect.GeneratedMethodAccessor162.invoke(未知源)~[na:na] 在 reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 位于java.lang.reflect.Method.invoke(Method.java:597)的~[na:1.6.043] ~(na:1.6.043]at org.apache.ibatis.plugin.Invocation.procedue(Invocation.java:46) ~(mybatis-3.2.5.jar:3.2.5)at com.baidu.bainuo.bppoi.interceptor.MybatisInterceptor.intercept(MybatisInterceptor.java:67) ~[bp-poi-service-1.0.20-SNAPSHOT.jar:na]at org.apache.ibatis.plugin.plugin.invoke(plugin.java:57) ~[mybatis-3.2.5.jar:3.2.5]位于com.sun.proxy.$Proxy34.query(未知) 来源)~[na:na]at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:104) ~(mybatis-3.2.5.jar:3.2.5)at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:98) ~(mybatis-3.2.5.jar:3.2.5)at sun.reflect.generatedMethodAccessor 161.invoke(未知源)~[na:na] 在 reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 位于java.lang.reflect.Method.invoke(Method.java:597)的~[na:1.6.043] ~(na:1.6.043]at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:358) ~[mybatis-spring-1.2.2.jar:1.2.2]。。。省略54个公共框架


考虑修改jdbc代码以符合您的需求。
MySQL 5.6服务器变量表示最小值为1024。

增加jdbc url中可以在末尾给出的最大允许数据包的值。当我重新启动程序时,不会出现此错误。查看jdbc代码时,我在ConnectionPropertiesImpl.java中找到,将最大允许数据包默认值设置为-1;但是当创建连接时,max_allowed_数据包将重置为mysql服务器中的变量max_allowed_数据包。如果您确定增加了它,那么您仍然需要重新启动mysql服务器。之后,我认为mysql服务器正常,当重新启动我的程序时,不会出现错误。为什么msql服务器中应该有-1。允许的最大数据包设置为10*1024*1024。