MySQL数据包过大

yibangzhenqing 2009-10-07 11:52:40
我用一个循环往数据库里面存文件,本来可以作为文件存放数据库里面只放文件的位置的,但是没有办法租的服务器网页空间大小有限制数据库没有限制。语句是这样的


public static final DataBase.MAXSIZE=1024*512;
for(int i=0;i<size;i+=DataBase.MAXSIZE){
System.out.println(i);
PreparedStatement sql=con.prepareStatement("insert into FILE_DATA_TABLE(DATA_SIZE,DATA_CON,FILE_ID)values(?,0,?);");
if((size-i)>DataBase.MAXSIZE){
sql.setInt(1, DataBase.MAXSIZE);
sql.setBinaryStream(2, in, DataBase.MAXSIZE);
}else{
sql.setInt(1,in.available()-i);
sql.setBinaryStream(2, in,in.available()-i);
break;
}
sql.setInt(2, this.fILE_ID);
sql.execute();
sql=null;
}


但是总会抛出 Packet for query is too large (6921195 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.

各位有没有解决办法?
...全文
127 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yate123 2009-10-08
  • 打赏
  • 举报
回复
顶一个,不太了解
yibangzhenqing 2009-10-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sgcl 的回复:]
mysql数据库设置了限制,
max_allowed_packet = 1048576

所以,必须修改mysql设置:
[mysqld]
max_allowed_packet=16M

[/Quote]
这个没有办法改啊,他们的服务器不让改,我实在很郁闷
平淡面对 2009-10-07
  • 打赏
  • 举报
回复
mysql数据库设置了限制,
max_allowed_packet = 1048576

所以,必须修改mysql设置:
[mysqld]
max_allowed_packet=16M

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧