1. 解决com.mysql.jdbc.PacketTooBigException: Packet for query is too large (3158064)问题
mysql根据配置文件会限制server接受的数据包大小。有时候大的插入和更新会被max_allowed_packet 参数限制掉,导致失败。
解决方案一:
MySQL的一个系统参数:max_allowed_packet,其默认值为1048576(1M),
查询:show VARIABLES like '%max_allowed_packet%';
修改此变量的值:
MySQL安装目录下的
my.ini文件中的[mysqld]段中的"max_allowed_packet = 1M",(可能有些文件会没有这一行的)
格式为:
[mysqld]
max_allowed_packet = 1M ( 将1M更改为16M(如果没有这行内容,增加一行)),
保存,重起MySQL服务。
现在可以load大于1M的文件了
不重启mysql使my.cnf生效,命令行下配置like 'max_allowed_packet'
方案二:不重启mysql使my.cnf生效,命令行下配置like 'max_allowed_packet=16M' (1.6*1024*1024*10)
在命令行里输入 set global max_allowed_packet=1677716;
然后,关闭连接,查看下修改过来了没有 show VARIABLES like '%max_allowed_packet%';