0

我的 MySQL 数据库中有一个列,将图像存储为字节数组。

我正在尝试更新一行以插入新图像。新图像为 163K,当我将其转换为 byte[] 时,数组中的元素数为 167092。当我运行执行更新的存储过程时,出现错误“Data too long for column 'x ' 在第 1 行。我在数据库中已经有一个现有图像,转换时它有 8844 字节 [] 元素。

列数据类型是 LONGBLOB。据我了解,我应该使用大约 4Gb。

我尝试更新我的 my.ini 文件以使 MAX_ALLOWED_PACKETS=16M,我什至尝试了 100M。

我正在使用 MySQL .NET 连接器库来执行我的存储过程。

有没有人对如何解决这个问题有任何想法?我知道我可以存储图像路径,而不是将图像直接存储到数据库中。但是我想知道如何解决我当前的问题,并且在尝试改变我的方法之前仍然先将图像存储在数据库中。

4

1 回答 1

1

我遇到了完全相同的问题...

在我的例子中,我通过 TEXT 参数传递了 LONGBLOB,因为我想在存储过程中使用 CONCAT 来创建动态 SQL。

解决方案就是将 TEXT 更改为 LONGTEXT。就是这样:)这真的需要一些时间来弄清楚......

希望我能在将近三年后提供帮助。

于 2012-12-07T18:08:10.277 回答