背景

大きなテキストデータを登録しようとした際、エラー発生。

SQLSTATE[HY000]: General error: 2006 MySQL server has gone away

データ型は LONGTEXT。入れようとしているデータは1.7M程度。


解決手順

my.cnf→max_allowed_packetを変更します。


現状確認

デフォルト値は1M。

mysql> show variables like 'max_allowed_packet';
+--------------------+---------+
| Variable_name      | Value   |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+
1 row in set (0.00 sec)

my.cnf編集

/etc/my.cnf

max_allowed_packet = 8MB

mysql再起動

/etc/init.d/mysqld restart

変更結果確認

mysql> show variables like 'max_allowed_packet';
+--------------------+---------+
| Variable_name      | Value   |
+--------------------+---------+
| max_allowed_packet | 8388608 |
+--------------------+---------+
1 row in set (0.00 sec)

facebook slideshare rubygems github qiita