[前][次][番号順一覧][スレッド一覧]

mysql:2113

From: Tomohiro Takahashi <Tomohiro Takahashi <t_takahashi@xxxxxxxxxx>>
Date: Wed, 24 May 2000 22:29:23 +0900
Subject: [mysql 02113] Re: about MySQL JDBC Driver

Shin-ichi Tsurunaga wrote:
> 
>  <略>
> 
> >  ところで、私が修正した gwe JDBC Driver ですが、MEDIUMBLOBなどのカラム
> >に巨大なデータを格納しようと試みました。しかし、600000バイト程度のバイナ
> ........
> 試してみました。確かに下記のエラーを吐きます。ちょっと長いですが書いてお
> きます。(サーバーの該当カラムはちゃんとLONGBLOBで宣言されています。)
> 
> java.lang.IllegalArgumentException: Packet is larger than max_allowed_packet from server
>                                                               configuration of 1048576 bytes
>         at org.gjt.mm.mysql.Buffer.ensureCapacity(Buffer.java, Compiled Code)
>         at org.gjt.mm.mysql.Buffer.writeBytesNoNull(Buffer.java:421)
> 
> Buffer.javaを少し覗いてみます。

  高橋(智)です。

  なるほど、確かに「1048576バイト」より大きいパケットを送ると、サーバーは
ヘッダを受けとった直後ぐらいにソケットを切断するようですね。
  私のソースの実装では、バイナリデータを UPDATE ... SET BINDATA=0x00010203...
といように 16進表記で 送り出していたので、525000バイトのデータ程度でパケット
の最大長を越えていました。

  マニュアルには、
  「例えば、 BLOB 型の許容範囲いっぱいのデータをテーブルに入れる場合、 
    --set-variable=max_allowed_packet=24M オプションを指定してサーバー
    を起動する必要があります。」
とありますが、クライアントから送りだすパケットのサイズは、ヘッダの構造上、
16Mを越えることが出来ないと思うのですが、どうなのでしょうか...。

-- 
高橋智宏

[前][次][番号順一覧][スレッド一覧]

      2096 2000-05-23 22:00 [Tomohiro Takahashi <] about MySQL JDBC Driver                 
      2105 2000-05-24 15:58 ┗[Shin-ichi Tsurunaga ]                                       
      2108 2000-05-24 18:16  ┣[Tomohiro KATO <tomop]                                     
      2112 2000-05-24 21:10  ┃┗[Shin-ichi Tsurunaga ]                                   
      2110 2000-05-24 19:49  ┗[Tomohiro Takahashi <]                                     
      2111 2000-05-24 20:32   ┗[Shin-ichi Tsurunaga ]                                   
->    2113 2000-05-24 22:29    ┗[Tomohiro Takahashi <]                                 
      2114 2000-05-24 23:52     ┗[Tomohiro Takahashi <]                               
      2116 2000-05-25 12:15      ┗[Shin-ichi Tsurunaga ]