参考链接: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的配置文件路径改成原先修改的