Comme l'ont dit les autres contributeurs à ce fil de discussion, il est très probable que le serveur MySQL ait fermé la connexion à votre application Ruby on Rails pour cause d'inactivité. Le délai d'attente par défaut est de 28800 secondes, soit 8 heures.
set-variable = wait_timeout=86400
En ajoutant cette ligne à votre /etc/my.cnf
portera le délai d'attente à 24 heures http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#option_mysqld_wait_timeout .
Bien que la documentation ne l'indique pas, une valeur de 0 mai désactiver complètement le délai d'attente, mais vous devez expérimenter car ce ne sont que des spéculations.
Il y a cependant trois autres situations que je connais qui peuvent générer cette erreur. La première est le redémarrage du serveur MySQL. Cela entraîne évidemment la perte de toutes les connexions, mais comme le client MySQL est passif, vous ne le remarquerez pas avant d'effectuer la prochaine requête.
La deuxième condition est que quelqu'un tue votre requête à partir de la ligne de commande MySQL, et cela coupe également la connexion, car cela pourrait laisser le client dans un état indéfini.
Le dernier cas est celui où votre serveur MySQL redémarre lui-même en raison d'une erreur interne fatale. En d'autres termes, si vous effectuez une simple requête sur une table et que vous voyez instantanément "MySQL a disparu", j'examinerais attentivement les journaux de votre serveur pour vérifier s'il y a une erreur matérielle ou une corruption de la base de données.