ActiveRecordは基本ずっと接続をはりっぱなしにします。 なので長時間接続をはりっぱなしにするため タイムアウト等で接続がきれると問題がでます。 MySQLでDBの接続がきれるタイミング 状況別 Railsの場合 HTTPリクエストのあるたびに接続が切れてないかを確認します。切れてる場合は再接続するようになっているので問題なさそうです。 バッチ、デーモン等 ActiveRecordを使った場合はずっとつなぎっぱなしになるため、途中で接続が切れるとエラーになります。 reconnectオプションは危険 じゃあバッチ等の場合自動で再接続してくれればと思うと MySqlのクライアントライブラリレベルでリコネクトの概念がありました。 railsで使うにはdatabase.ymlに:reconnect = trueで指定できます。 が!! railsの実装ではデフォルトはOFFになっています