情景:sakai长传1M一下文件正常,大于1M总是出错。
整体框架:tomcat + mysql + sakai
解决思路:文件有没有上传成功,上传成功有没有保存成功。
1、可能tomcat上传文件不成功,是不是上传文件受限?
/opt/tomcat/conf/server.xml
<Connector port="80" protocol="HTTP/1.1"
URIEncoding="UTF-8"
connectionTimeout="2000000"
redirectPort="8443"
maxPostSize="-1"/>
#加入这一行,tomcat7以前版本maxPostSize="0"是对post大小不限制,之后是maxPostSize="-1"不限制,0为最小值
2、可能是mysql保存问题
查看mysql配置参数,mysql默认插入数据的大小是1M,如果插入1M以上的数据,就会出现错误。
登录mysql查看
show VARIABLES like '%max_allowed_packet%';
显示的结果为:
代码如下:
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+
以上说明目前的配置是:1M
修改方法:
在/etc/my.cnf 中[mysqld]下添加:
max_allowed_packet = 20M
问题即可解决!
发现:sakai存储文件竟然直接存入mysql的!后果可想而知!
参考:
https://stackoverflow.com/questions/14033400/max-allowed-packet-1024m-and-it-still-gives-me-error-got-a-packet-bigger-tha
mysql中max_allowed_packet参数的配置方法