Tengo un MySQL que se fue con Django bajo WSGI. Encontré entradas para este problema en stackoverflow, pero nada con Django específicamente. Google no ayuda, excepto por soluciones (como sondear el sitio web de vez en cuando o aumentar el tiempo de espera de la base de datos). Nada definitivo Técnicamente, Django y/o MySQLdb (estoy usando el último 1.2.3c1) deberían intentar reconectarse si el servidor colgó la conexión, pero esto no sucede. ¿Cómo puedo resolver este problema sin soluciones temporales?(2006, 'servidor MySQL se ha ido') en WSGI django
Respuesta
show variables like 'wait_timeout';
Ésta es la configuración les devolverá los "mysql desaparecido" error
se establece en un valor muy grande para evitar que
o simplemente re-ping a la conexión de MySQL después de que "ha ido lejos" cierto período
bueno, ahora cambié de trabajo, así que no puedo probarlo, pero espero que sea correcto :) –
se puede crear middleware de ping() la conexión de MySQL (que se volverá a conectar si tiempo de espera) antes de procesar la vista
También podría agregar middleware para capturar la excepción, volver a conectar y volver a intentar la vista (creo que preferiría la solución anterior como más simple, pero técnicamente debería funcionar y ser eficiente asumiendo que los tiempos de espera son excepcionales). Esto también asume un punto de vista no tiene ningún efecto secundario, que es una propiedad deseable, pero puede ser difícil de hacer, especialmente si se escribe a un sistema de archivos, así como una base de datos en la vista.)
desarrolladores de Django dieron una respuesta corta para todas las preguntas como esta en https://code.djangoproject.com/ticket/21597#comment:29
- Resolution set to wontfix
Actually this is the intended behavior after #15119. See that ticket for the rationale.
If you hit this problem and don't want to understand what's going on, don't reopen this ticket, just do this:
RECOMMENDED SOLUTION: close the connection with
from django.db import connection; connection.close()
when you know that your program is going to be idle for a long time.CRAPPY SOLUTION: increase wait_timeout so it's longer than the maximum idle time of your program.
In this context, idle time is the time between two successive database queries.
- 1. Django - OperationalError: (2006, 'El servidor MySQL se ha ido')
- 2. # 2006 El servidor MySQL se ha ido error en Wamp
- 3. MySQL Error 2006 (HY000) en la línea 406: servidor MySQL se ha ido
- 4. PDO: el servidor MySQL se ha ido
- 5. Obtener intencionalmente un error "servidor MySQL se ha ido"
- 6. La reconexión en el servidor MySQL se ha ido
- 7. "El servidor MySQL se ha ido" en mysqli
- 8. El servidor MySQL se ha ido - en exactamente 60 segundos
- 9. Configuración del servidor MySQL para evitar el "servidor MySQL se ha ido" error
- 10. Solución de errores del "servidor MySQL se ha ido"
- 11. "El servidor MySQL se ha ido" con Ruby on Rails
- 12. Manejo elegante de "MySQL se ha ido"
- 13. ¿Cómo se simula el error "MYSQL se ha ido"?
- 14. pcntl_fork y la conexión MySQL se ha ido
- 15. FxCop 1.36 se ha ido
- 16. ¿Dónde se ha ido el servidor de ejecución en compojure?
- 17. ¿Dónde se ha ido Lucene.Net.Highlight?
- 18. PDO con PDOStatement reconectarse en el error "servidor mysql ido"
- 19. jQuery IE se ha ido tan mal
- 20. ¿Se ha ido el paquete scala.actors?
- 21. ¿Dónde se ha ido el archivo Smalltalk?
- 22. Django + WSGI: ¿Cuestiones refrescantes?
- 23. ¿Dónde se ha ido mi rastro de pila?
- 24. ¿Se ha ido el List <T> .ForEach() method?
- 25. Flex Tipo de coacción, se ha ido mentales creo
- 26. ¿Cómo se configura un servidor python wsgi en IIS?
- 27. Problema de Heroku durante la extracción de la base de datos de la aplicación: Mysql :: Error El servidor MySQL se ha ido
- 28. Configuración django con WSGI y apache
- 29. Recargar scripts django wsgi sin root
- 30. ejecutando la aplicación cherrypy en el servidor gevent wsgi
¿Están el servidor web y MySQL en la misma máquina? De lo contrario, cuanto más cerca estén, menos probable será que un problema de red provoque que el servidor se "vaya". – lexu
@lexu sí lo son. –
seleccione la versión(); mostrar la lista de procesos; mostrar variables como '% max%; Por favor, pegue el resultado: – iddqd