今天mysql执行批量sql语句的时候出现一个异常,错误信息如下:
Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1354 > 1024). You can change this value on the server
原因:MySQL根据配置文件会限制Server接受的数据包大小。有时候插入、更新或查询时数据包的大小,会受 max_allowed_packet 参数限制,导致操作失败。
解决方案:
1、在mysql命令行中修改,设置为1024M,命令是:set global max_allowed_packet = 1024*1024*1024 ,但是在客户端用命令修改后,只能暂时起作用,重新启动MYSQL后,会恢复原来的值。
2、修改配置文件,可以编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改。找到max_allowed_packet配置,设置为max_allowed_packet = 1024M。注意修改配置文件,需要重启mysql。