MySQL Packet for query is too large (1521830 > 1048576)

使用SpringMVC做文件上传,上传的文件需要持久化到数据库,数据库实现为MySQL 5.1。对于小于1M的文件没有发生任何异常,当上传的文件大于1M时会触发下面的异常。

com.mysql.jdbc.PacketTooBigException: Packet for query is too large (14865778 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.

通过在网上查阅相关资料后得知,MySQL LOB列在默认情况下允许的最大存储容量为1M。

解决方案:
修改MySQL系统参数,即修改max_allowed_packet,其默认值为1048576(1M)。

通过使用如下命令可以查询该系统变量的默认值。
show VARIABLES like '%max_allowed_packet%';


在MySQL安装目录下的my.ini文件中的查找[mysqld]段中的“max_allowed_packet = 1M”,可能会不存在。

修改后的格式如下:

[mysqld]
max_allowed_packet = 10M,如果没有这行内容,自己增加即可。退出前保存!

重启动MySQL服务。

现在可以load大于1M的文件了。

猜你喜欢

转载自edisonlv2010.iteye.com/blog/1888847