※ ChatGPTを利用し、要約された質問です(原文:MySQLでBLOBを扱う)
MySQLでBLOBを扱う
このQ&Aのポイント
MySQLでBLOBを扱うための方法として、Javaでのファイルのアップロードについて悩んでいます。
JDBCを利用する際に、ストリームとして渡すとByte配列に変換されるため、100MB以上のファイルをアップロードする際にOutOfMemoryエラーが発生します。
Blob streamingやPBXTを使用することでこの問題を解決できる可能性がありますが、これらを入手する方法がわかりません。最新バージョンではストリーミングに対応している可能性もあるため、解決策を知りたいです。
MySQLとJavaどちらに投稿しようか迷ったのですがこちらに投稿させていただきます。
Javaでファイルのアップロードを扱おうとしています。
ファイルをMySQLにBLOB型として格納したいのですが、JDBCを利用してストリームとして渡してもByte配列にしてしまうようでたしかに100MB以上のファイルをアップロードしようとするとOutOfMemoryになってしまいました。
調べるとストレージエンジンとしてBlob streamingやPBXTを使えば解決するらしいのですがダウンロードしようと思ってSorceForgeなどを見に行ってもファイルが存在しませんでした。
もう、これらは手に入れることはできないんでしょうか?
手に入れられないとするとどうやって解決するのでしょうか。最新のバージョンだとストリーミングに対応しているとかあるんでしょうか。
回答よろしくおねがいします。
お礼
ありがとうございます。 ソースダウンロードできたんですね。お手数をおかけしました。 コンパイルにソースコードが必要とのことですが、MySQL自体もソースから入れ直さないとだめなんですかね?MySQLはパッケージからインストールしたんですが…
補足
MySQL-5.1でPBXTをインストールすることができました。 ありがとうございました。 ちなみにこれはMySQL-5.5じゃ使用できないんですかね。 みるとMySQL-5.5用にpatchあててcmakeでコンパイルみたいなことが書いてあったんでpatchを当てて cmakeしたんですが、make install時にmysql_version.hがno such file or directory 等といわれてインストールできませんでした。 # cmake . -DMYSQL-SOURCE=/usr/local/src/mysql-5.5.25a -DWITH-DEBUG=FULL -DWITH-PBMS=ON # make # make install