2008年09月17日

MySQLで長いSQL文を実行したらエラーになった場合の解決方法

INSERT処理を速くする為に、マルチプルINSERT(※1)を使用すると、SQL文が極端に長くなってしまい、実行するとエラーになることがあります。

※1.マルチプルINSERTとは、一括してINSERTのSQL文を実行します。
例:  INSERT INTO tbl_name VALUES (1,23),(2,34),(4,33);

エラーメッセージの例:
SQLSTATE[08S01]: Communication link failure: 1153 Got a packet bigger than 'max_allowed_packet' bytes
これは、SQL文が「max_allowed_packet」に設定した値を超えてしまったことを現しています。


設定ファイルを編集し、「max_allowed_packet」の値を大きくします。
# vi /etc/my.cnf
max_allowed_packet = 32M

MySQLを再起動して完了です。


ラベル:どなん
posted by ラクサス at 12:15| Comment(0) | TrackBack(0) | DB | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。