【发布时间】:2012-07-04 10:26:51
【问题描述】:
我在 MYSQL 中存储图像。
我有桌子
CREATE TABLE myTable (id INT, myImage BLOB);
当我尝试插入 4.7MB 文件时,我收到异常
com.mysql.jdbc.PacketTooBigException: Packet for query is too large (4996552 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.
我相信这仅与图像大小有关。还有其他我可以使用的变量类型吗?
更新 1
根据较早的 SO 问题,我也尝试使用 MEDIUMBLOB,但仍然遇到相同的错误。
Adding Image to a database in Java
更新 2
在项目开始时,我执行以下查询,现在一切正常
SET GLOBAL max_allowed_packet = 1024*1024*14;
【问题讨论】:
-
该错误与 MySQL 接收数据时的缓冲区大小有关。该参数的合适大小约为 15M。附言不鼓励将图像存储在数据库中