[mysql] やる夫がmax_allowed_packetの設定をするようです。
max_allowed_packetについて
max_allowed_packetとは、通信時における1パケットの最大サイズ。BLOB型(画像などのバイナリを入れるカラム)を利用する場合、最大BLOBカラム長より大きく設定する必要があります。
DBD::mysql::st execute failed: Got a packet bigger than 'max_allowed_packet' bytes at /usr/local/yaruo/mysal/DBI.pm line 347
max_allowed_packetが小さいとエラーが出力されます。
max_allowed_packetの確認方法
下記結果は、16Mで設定している状態です。
mysql> show variables like 'max_allowed_packet';
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 1047552 |
+--------------------+---------+
1 row in set (0.00 sec)
max_allowed_packetの設定方法
設定方法は、my.cnfを書き換えて、mysqldを再起動する方法と、mysqlログインをして、SQL文を叩く方法です。ちなみに後者は、mysqlログイン時のみ有効のようです。
____
/ \
/ ─ ─\
/ (●) (●) \ 永続的に変更する場合はやはり
| (__人__) | mysqldの再起動が必要だお
/ ∩ノ ⊃ /
( \ / _ノ | |
.\ “ /__| |
\ /___ /
____
/ \ ( ;;;;(
/ _ノ ヽ__\) ;;;;)
/ (─) (─ /;;/
| (__人__) l;;,´ クラスタ監視停止とか
/ ∩ ノ)━・'/ 余分な作業がでてくるお
( \ / _ノ´.| |
.\ " /__| | まんどくせ・・・
\ /___ /
下記例では、32Mに設定した場合の例です。
#vi myconf
-----
- max_allowed_packet = 16M
+ max_allowed_packet = 32M
-----
- - はその行を消去して下さい(コメントアウトでも可)。
- + はその行を追加して下さい。
SQL
下記例では、32Mに設定した場合の例です。
mysql> set max_allowed_packet=33553408;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like 'max_allowed_packet';
+--------------------+----------+
| Variable_name | Value |
+--------------------+----------+
| max_allowed_packet | 33553408 |
+--------------------+----------+
1 row in set (0.00 sec)
- 別に切り番でもよいです。33555000とか・・・。
- mysqlログアウトしちゃうと16Mに戻ってしまいます。あしからず・・・。
----------------------------------------
現場で使える MySQL (DB Magazine SELECTION)![]() |
| 松信 嘉範 翔泳社翔泳社翔泳社 定価 : ¥ 2,730 2006-03-17 amazonで詳しく見る |
| 固定リンク
「MySQL」カテゴリの記事
- InnoDB: Error: trying to declare trx to enter InnoDB, but InnoDB: it already is declared.(2009.03.05)
- [mysql] my.cnf設定変更(2008.08.04)
- [mysql] やる夫がカラム一覧を表示させるようです。(2008.01.28)
- [mysql] やる夫がDBコネクションをkillするようです。(2008.04.14)
- [mysql] やる夫のMySQL設定ミス(2008.06.20)


コメント