データベースやWebサーバーは、実際に稼働してから問題が多発します。 データ量が増えてきたり、アクセスが増えてきたらまずレスポンスの問題が発生するでしょう。 経験のあるエンジニアがいれば、十分なテストを行ってから稼働するわけですが、なかなかそうもいきません。 今回のテーマはMySQLのwait_timeoutの設定です。 なぜハマってしまうかというと、グローバル変数のwait_timeoutがそのまま個々のセッションのwait_timeoutになるとは限らないからです。 結論からいいますと、 プロセス生成時にグローバル変数のinteractive_timeoutかwait_timeout が、セッション変数のwait_timeout に反映されます。 そして、どちらが反映されるかは、mysqlのAPI呼出し時に対話型クライアントの定義かどうかできまります。 MySQLサーバーと、サーバ接続
![MySQLのwait_timeout](https://cdn-ak-scissors.b.st-hatena.com/image/square/2fd72cc941c35cd82927036e42eeab49e351531a/height=288;version=1;width=512/http%3A%2F%2Fips.nekotype.com%2Fwp-content%2Fuploads%2F2012%2F12%2Fmysql.png)