Erreur de 2006: “MySQL server has gone away” à l'aide de Python, Bouteille Microframework et Apache
Après avoir eu accès à mon application web à l'aide de:
- Python 2.7
- la Bouteille de micro framework v. 0.10.6
- Apache 2.2.22
- mod_wsgi
- sur le Serveur Ubuntu 12.04 64 bits; je reçois cette erreur après plusieurs heures d'ouverture:
OperationalError: (2006, 'MySQL server has gone away')
Je suis en utilisant MySQL - le natif inclus dans Python. Cela arrive souvent lorsque je n'ai pas accès au serveur. J'ai essayé de fermer toutes les connexions, ce qui je ne, en utilisant ceci:
cursor.close()
db.close()
où db est la norme MySQLdb.Connexion ().
Le mon.cnf fichier ressemble à ceci:
key_buffer = 16M
max_allowed_packet = 128M
thread_stack = 192K
thread_cache_size = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover = BACKUP
#max_connections = 100
#table_cache = 64
#thread_concurrency = 10
C'est le fichier de configuration par défaut à l'exception de max_allowed_packet est 128M au lieu de 16M.
Les requêtes à la base de données sont assez simples, tout au plus ils récupèrent environ 100 enregistrements.
Quelqu'un peut-il m'aider à résoudre ce problème? Une idée que j'ai eu a utiliser try/except mais je ne suis pas sûr si cela fonctionne réellement.
Merci d'avance,
Jamie
Mise à jour: essayez de/à l'exception des appels ne fonctionne pas.
OriginalL'auteur Jamie | 2012-09-16
Vous devez vous connecter pour publier un commentaire.
C'est l'erreur MySQL, pas de Python.
La liste des causes possibles et des solutions possibles est ici: MySQL 5.5 Manuel De Référence: C. 5.2.9. MySQL server has gone away.
Causes possibles incluent:
En d'autres termes, il ya beaucoup de causes possibles. Aller au moyen de cette liste et de vérifier chaque cause possible.
Ok la reconnexion automatique n'a de fin de travail. Merci pour votre aide, c'était facile!
Vous êtes les bienvenus. Je suis content d'avoir aidé 🙂
En fait la solution n'a pas fonctionné. Il y a toujours un message d'erreur après avoir quitté l'application pendant environ 24 heures. Je crois qu'une nouvelle question serait comment puis-je créer des reconnexions automatiques à l'aide de Python?
Votre réponse m'aide beaucoup et enregistrer au moins 1 journée de mon temps . Je vous remercie beaucoup .
OriginalL'auteur Tadeck
Assurez-vous que vous n'êtes pas d'essayer de s'engager à un fermé MySqldb objet
OriginalL'auteur joseph
Une réponse à une (très étroitement liés) question a été posté ici: https://stackoverflow.com/a/982873/209532
Il se rapporte directement à la MySQLdb pilote (MySQL-python (plus maintenu) et mysqlclient (maintenu fourche)), mais l'approche est la même pour d'autres le pilote ne prend pas en charge de reconnexion automatique.
OriginalL'auteur chjortlund
Pour moi cela a été fixée à l'aide de
au lieu de
et puis
OriginalL'auteur citynorman