MySQL server has gone away というエラーが出ることがあります。 これは最後のMySQL接続から時間が経って、自動的にMySQLサーバがタイムアウトした時に発生します。 タイムアウト時間は PHPの場合 phpinfo(); で表示される画面の
mysql.connect_timeout
の項目で見ることができます。デフォルト 60秒。
このタイムアウト時間を長くするには PHPの場合
ini_set('mysql.connect_timeout', 180);
ini_set('default_socket_timeout', 180);
とします。(3分に設定する場合)
またPHPなどのプログラムでMySQLクエリーを発行する前に再接続をしておくと良いです PHPフレームワークCodeIgniterの場合
$this->db->reconnect();
で再接続を行います。