原文附代码:http://blog.maptoface.com/post/203
Failed to parse multipart servlet request; nested exception is java.lang.IllegalStateException: The
Cause: com.mysql.jdbc.PacketTooBigException
分别两个报错的解决方案:
Failed to parse multipart servlet request; nested exception is java.lang.IllegalStateException: The
提交表单报错
修改Spring Boot
内置Tomcat的maxPostsize
值,在application.yml
配置文件中添加以下内容:
Cause: com.mysql.jdbc.PacketTooBigException
解决了应用服务器请求数据量过大问题后,在下一步写入DB时又遇到了类似问题,超出了数据库中最大允许数据包默认配置值。
Cause: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (16800061 > 16777216). You can change this value on the server by setting the max_allowed_packet’ variable.
Solution:
修改DB的max_allowed_packet值:
USE database;
set global max_allowed_packet = 3*1024*1024*10; # 改为30M
show VARIABLES like '%max_allowed_packet%'; # 重启DB连接生效
Note:MySQL中max_allowed_packet 的 默认配置:16777216 = 16 * 1024 * 1024,即16M
又出现问题:max_allowed_packet在重启mysql后依然不生效
解决:
可以编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改
max_allowed_packet = 100M。
最后成功!