Linux上で
——————————–
(1)MySQLからデータ取得
(2)ファイル加工処理(数時間以上)
(3)MySQLにデータ格納
(4)1に戻る
——————————–
という処理を走らせていたら、たまに処理がストップしました。
エラーメッセージを見ると処理(2)と(3)の間で
mysql server has gone away
という文字が。
調べてみるとどうやらMySQLがタイムアウトで接続が切れてしまった模様。
デフォルトでは8時間で切れるみたいです。
つまり(2)のファイル加工処理で8時間以上かかってしまった場合に処理が止まっていた、と。
なので、my.cnfをいじって
wait_timeout=86400
interactive_timeout=86400
interactive_timeout=86400
とタイムアウトの時間を24時間に変更。
変更はここを参考にしました。
MySQLのチューニング? – satospo
http://satospo.sakura.ne.jp/blog_archives/tech/linux_server/mysql4_tune.html
これで処理が止まらないようになりました。