【发布时间】: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