Cómo resolver el error "MySQL server has gone away"

Fecha: 09/06/2025
Mientras que anteriormente las webs se realizaban únicamente con HTML y en algunas ocasiones se incluía CSS, actualmente la mayoría de webs se compone de ficheros (PHP por ejemplo) y base de datos.

Esto implica que la conexión con la base de datos debe funcionar con normalidad para que la web pueda responder correctamente, en caso contrario, podemos experimentar múltiples errores que pueden indicar problemas con la base de datos.

Uno de ellos es el error 'MySQL server has gone away', que podemos ver también como 'ERROR 2006 (HY000): MySQL server has gone away'.


Índice del artículo
  • ¿Qué indica el error MySQL server has gone away?
  • Causas del error 'MySQL server has gone away' y cómo solucionarlo
  • Tiempo de consulta demasiado elevado
  • Base de datos corrupta
  • Recursos del servidor
  • Error durante la exportación/importación de la base de datos


¿Qué indica el error MySQL server has gone away?


Aunque es un error que puede tener varias causas, el problema de base es que la conexión entre la aplicación o proceso que se está ejecutando (puede ocurrir también al lanzar tareas como importaciones de base de datos) y el servidor de base de datos se rompe, lo que causa que el proceso o consultas SQL pendientes no puedan continuar ejecutándose y, por tanto, no es posible obtener la información necesaria para resolver el contenido que necesitamos.

Causas del error 'MySQL server has gone away' y cómo solucionarlo


Tiempo de consulta demasiado elevado


En ocasiones una o varias consultas de las que ejecutamos necesitan más tiempo para finalizar del que el servidor tiene configurado para ello, por lo que 'se cortan' antes de finalizar y obtener el resultado correcto y el proceso recibe este error.

Para solventarlo, habría 2 alternativas:

  • Optimizar las consultas SQL que realiza nuestra instalación: podemos ayudarnos del apartado 'Procesos' de phpMyAdmin, donde podremos ver las consultas que se ejecutan en tiempo real y de este modo verificar si hay alguna consulta cuya longitud o tiempo de ejecución debamos revisar. Causas del error 'MySQL server has gone away'

  • Aumentar el tiempo de ejecución de las consultas SQL (o tiempo de espera): para ello tendremos que editar la configuración del servidor de base de datos, concretamente las variables: "wait_timeout =" o "interactive_timeout ="


Es aconsejable tener en cuenta que aunque aumentar el tiempo de ejecución de las consultas SQL puede solventar el error, no siempre es la alternativa adecuada, ya que no deberíamos configurar valores exageradamente altos para la resolución de consultas a la base de datos.

Base de datos corrupta


Aunque no es habitual, la base de datos puede corromperse en algunas ocasiones. Puede ocurrir si recientemente la hemos importado y no se ha importado correctamente (o si se han experimentado errores durante la exportación previa y el fichero no es válido), si se han perdido índices que puedan afectar a la estructura de la misma o por problemas de espacio en disco en nuestro servidor que impidan que la información se registre correctamente en la base de datos.

Si sospechamos que nuestra base de datos está corrupta, podemos restaurar una copia de seguridad válida, o bien optimizar y/o reparar la base de datos, desde phpMyAdmin por ejemplo.

reparar la base de datos, desde phpMyAdmin

Recursos del servidor


Si nuestra web alcanza de forma constante o demasiado frecuentemente el límite de recursos asignado, puede ocasionar que el servicio de base de datos no funcione correctamente y se caiga o experimente reinicios esporádicos, lo que podría ocasionar que de forma temporal experimentemos el error 'MySQL server has gone away'.

Podemos verificar el tiempo que el servicio de base de datos lleva funcionando a través de terminal, con los siguientes comandos:
mysql

Este iniciará la consola para gestionar el servicio de base de datos).
SHOW GLOBAL STATUS LIKE 'Uptime';

(Este seleccionará el valor 'Uptime' del estado global, es importante finalizarlo con ';' para que se ejecute con normalidad).

verificar el tiempo que el servicio de base de datos lleva funcionando

El resultado nos lo dará en segundos, por lo que posteriormente debemos convertirlo a horas/días.
Si utilizamos un VPS Cloud Optimizado también podemos ver el tiempo que el servicio de base de datos lleva activo desde "RaiolaCP > Servidor > Servicios".

ver tiempo que el servicio de base de datos lleva activo desde RaiolaCP

Si necesitamos reiniciar el servicio de base de datos, podremos hacerlo también desde RaiolaCP en el botón correspondiente:

reiniciar el servicio de base de datos desde RaiolaCP

O con el siguiente comando (si tenemos acceso a terminal):
service mysql restart

Error durante la exportación/importación de la base de datos


Uno de los procesos en los que podemos experimentar este problema es al realizar una exportación o importación de la base de datos, especialmente si la base de datos con la que estamos trabajando contiene tablas de gran tamaño o campos de gran longitud.

Si estamos experimentando este error, podemos incrementar la variable "max_allowed_packet" (el parámetro que indica el tamaño máximo de un paquete de datos que puede transmitirse o recibirse por el servidor MySQL).

Podemos incrementarlo modificando este valor en la configuración del servidor, en el fichero:

"/etc/my.cnf" (sustituyendo el valor por el correspondiente)
max_allowed_packet = 2048M

Una vez que hayamos modificado el fichero, tendríamos que reiniciar el servicio de base de datos (podemos hacerlo con el comando indicado en el punto anterior).

Otra alternativa es especificar ese parámetro en el comando que utilicemos, si lo hacemos por terminal, de forma que no necesitaríamos modificar la configuración global del servidor.
mysql --max_allowed_packet=2048M -u USUARIO_BD -p NOMBRE_BD < NOMBRE_ARCHIVO.SQL
Mila Fernandez
Mila Fernandez

Formo parte del departamento de WordPress, apasionada de la lectura, tengo la habilidad de saberme diálogos de Harry Potter de memoria.

Artículos relacionados

Si te ha gustado este post, aquí tienes otros que pueden ser de tu interés. ¡No dejes de aprender!

Aún no tenemos comentarios en Cómo resolver el error "MySQL server has gone away"

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *