我的MySQL数据库中有一个列,用于将图像存储为字节数组。
我正在尝试更新一行以插入新图像。新图像为163K,当我将其转换为byte []时,数组中的元素数量为167092.当我运行执行更新的存储过程时,出现错误“数据太长第1行的列'x'。我已经在数据库中有一个现有的图像,转换时有8844个字节[]元素。
列数据类型为LONGBLOB。根据我的理解,我应该使用appox 4Gb。
我尝试更新my.ini文件以使MAX_ALLOWED_PACKETS = 16M,我甚至尝试了100M。
我正在使用MySQL .NET Connector库来执行我的存储过程。
有没有人对如何解决这个问题有任何想法?我知道我可以存储图像路径,而不是将图像直接存储到数据库中。但是我想知道如何解决我当前的问题,并且在尝试改变我的方法之前仍然将图像存储在数据库中。
答案 0 :(得分:1)
我有完全相同的问题...
在我的情况下,我通过TEXT参数传递LONGBLOB,因为我想在存储过程中使用CONCAT来创建动态SQL。
解决方案只是将TEXT更改为LONGTEXT。而已 :) 这真的需要一些时间来弄明白......
希望我差不多三年后能帮到你。