Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (6122 > 1024). 问题解决办法

参考链接:https://blog.csdn.net/zhaozao5757/article/details/79183757

插入数据库时报:

Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (6122 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.
    at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3678)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2509)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2484)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)
    at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2079)
    at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2013)
    at com.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5104)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1998)
    at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61)
    at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java)
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:204)
    ... 127 common frames omitted

根据百度的修改mysql的my.ini文件设置100M(设置完重新启动),但是一段时间还是报同样的错。后来在navcat中,新建查询,运行:

show variables like '%max_allowed_packet%';

可以看到max_allowed_packet=1024;

修改配置(将1024(1M)增大,将其修改为20M),新建查询中运行:

set global max_allowed_packet = 2*1024*1024*10;

设置:

并重启mysql,正常。在windows server服务器重启mysql:

右键点击“重新启动”就可以了

后来发现,过一段时间再次发生这个错误,已经修改了my.ini文件:

我的mysql安装目录是这样, 

一个是数据目录,一个是工作目录,合在一起就一个实例.

修改my.ini不起作用。

后来查找原因是:启动mysql的时候指定配置文件路径,加载的不是这个目录的my.ini。加载的是默认的这个目录下的my.ini

C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.7

修改这个my.ini或者改变mysql的配置文件路径改成原先修改的

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值