Base de conocimientos
1 000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!
Solucionar un error de MySQL (el servidor se ha desconectado)
Esta guía le ayudará a solucionar un error del tipo "Consulta no válida: el servidor MySQL se ha desconectado".
Introducción
- Este tipo de error suele deberse a que se mantiene una conexión MySQL abierta sin enviar solicitudes durante un período de tiempo que supera el límite después del cual la conexión se cierra: http://dev.mysql.com/doc/refman/5.7/en/gone-away.html
- Las variables
wait_timeoutyinteractive_timeoutque controlan esta desconexión están configuradas en 30 segundos: http://dev.mysql.com/doc/refman/5.0/en/communication-errors.html
Soluciones
Para evitar el error "El servidor MySQL se ha desconectado", aquí hay varias soluciones posibles:
Verificación y reconexión automática
Antes de ejecutar una consulta, se recomienda comprobar si la conexión MySQL sigue activa. Si la conexión se ha cerrado, puede restablecerla automáticamente antes de continuar con su consulta. Aquí tiene un ejemplo en PHP:
if (!mysqli_ping($connexion)) {
mysqli_close($connexion);
$connexion = mysqli_connect($host, $user, $password, $database);
}La función mysqli_ping() comprueba si la conexión sigue siendo válida. Si no lo es, el script cierra la conexión y abre una nueva.
Envío periódico de un "ping"
Otra opción consiste en ejecutar un script que envíe periódicamente un "ping" a la base de datos para mantener la conexión activa. Por ejemplo, podría crear una tarea programada (cron job) que envíe una consulta ligera, como SELECT 1;, a intervalos regulares.
Ajuste de los parámetros MySQL (Servidor Cloud)
Con un Servidor Cloud, puede aumentar los valores de las variables wait_timeout e interactive_timeout desde el menú MySQL de su servidor para prolongar la duración de la conexión antes de que se cierre.
Enlace a esta FAQ: https://faq.infomaniak.com/499
¿Le ha sido útil esta FAQ?