2012-02-10 6 views
0

MySQLデータベースに画像をバイト配列として格納するカラムがあります。MySQL 5.5 LONGBLOB列のデータが1行目のカラム 'x'に長すぎます

新しい画像を挿入するために行を更新しようとしています。新しいイメージは163Kです。バイトに変換すると、配列の要素数は167092になります。更新を行うストアドプロシージャを実行すると、エラーが発生します"データが長すぎます" x」は、行1で私はすでに変換8844バイト[]の要素を持つデータベース内の既存のイメージを持っている。

列のデータ型がLONGBLOBです。私の理解から、私はで動作するようにappox 4GBのを持っている必要があります。

私はMAX_ALLOWED_PACKETS = 16Mを作るために私のmy.iniファイルを更新しようとしていると私も100Mを試してみました。

私が保存されprocedurを実行するためにMySQLの.NETコネクタライブラリを使用していますes。

この問題を解決する方法はありますか?私は、データベースに直接画像を保存するのではなく、画像パスを保存できることを知っています。しかし、自分の現在の問題を解決する方法を知りたいのですが、私のアプローチを変えようとする前に、まずデータベースにイメージを保存しておきたいと思います。

+0

私はMySQLワークベンチを通じて画像をアップロードすることができ、すべて正常に動作します。私は3MBのファイルをアップロードできました。これは、.NET経由でアップロードしようとしている163Kファイルよりもはるかに大きいものです。これはMySQLコネクタライブラリで問題になる可能性があると私に言います。 – johnmurphy01

+0

私はデータベースにパスを保存することに行きました。しかし、誰かが良い答えを思い付くなら、コメントしてください。私は何か解決策を聞いてみたい。 – johnmurphy01

答えて

1

私は、動的SQLを作成するために、ストアドプロシージャ内CONCATを使用していたので、私の場合は、TEXTパラメータを経由してLONGBLOBを渡した...

を正確に同じ問題を抱えていました。

解決策は単にTEXTをLONGTEXTに変更することでした。それはそれだ:) それは本当に理解する時間がかかった...

私はほぼ3年後でも助けることができた。

関連する問題