Skip to main content.

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


これで処理が止まらないようになりました。
このエントリーをはてなブックマークに追加
 

comments powered by Disqus