【问题标题】:MySQL 5.5 LONGBLOB Column Data too long for column 'x' at row 1MySQL 5.5 LONGBLOB 列数据对于第 1 行的列“x”而言太长
【发布时间】:2012-02-10 19:50:05
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 我可以通过 MySQL 工作台上传图片,一切正常。我已经能够上传 3Mb 的文件,比我尝试通过 .NET 上传的 163K 文件大得多。这让我相信这可能是 MySQL 连接器库的问题。
  • 我最终将路径存储在数据库中。但如果有人想出一个好的答案,请发表评论。我很想听听任何解决方案。

标签: mysql blob mysql-connector maxlength


【解决方案1】:

我也遇到了同样的问题……

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

解决方法就是将 TEXT 更改为 LONGTEXT。而已 :) 这确实需要一些时间才能弄清楚......

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

【讨论】:

    猜你喜欢
    • 2014-07-16
    • 1970-01-01
    • 1970-01-01
    • 2016-06-07
    • 1970-01-01
    • 2020-01-07
    • 2020-03-04
    • 2018-12-01
    • 2016-03-16
    相关资源
    最近更新 更多