MySQL 5.5 LONGBLOB列数据对于第1行的列'x'来说太长了

时间:2012-02-10 19:50:05

标签: mysql blob mysql-connector maxlength

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

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

列数据类型为LONGBLOB。根据我的理解,我应该使用appox 4Gb。

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

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

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

1 个答案:

答案 0 :(得分:1)

我有完全相同的问题...

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

解决方案只是将TEXT更改为LONGTEXT。而已 :) 这真的需要一些时间来弄明白......

希望我差不多三年后能帮到你。