MySQLで「mysql server has gone away」と出た

Linux上で

——————————–
(1)MySQLからデータ取得
(2)ファイル加工処理(数時間以上)
(3)MySQLにデータ格納
(4)1に戻る
——————————–

という処理を走らせていたら、たまに処理がストップしました。
エラーメッセージを見ると処理(2)と(3)の間で

mysql server has gone away

という文字が。


 
調べてみるとどうやらMySQLがタイムアウトで接続が切れてしまった模様。
デフォルトでは8時間で切れるみたいです。

MySQL :: MySQL 4.1 リファレンスマニュアル :: A.2.2 MySQL server has gone away エラー
http://dev.mysql.com/doc/refman/4.1/ja/gone-away.html

つまり(2)のファイル加工処理で8時間以上かかってしまった場合に処理が止まっていた、と。

なので、my.cnfをいじって

wait_timeout=86400
interactive_timeout=86400

とタイムアウトの時間を24時間に変更。

変更はここを参考にしました。

MySQLのチューニング? – satospo
http://satospo.sakura.ne.jp/blog_archives/tech/linux_server/mysql4_tune.html

これで処理が止まらないようになりました。

大阪の江坂でウェブ制作をしている、インフラもシステムもデザインもディレクションもできるエンジニア。 広く浅く薄っぺらくですが(笑)

Leave a reply:

Your email address will not be published.