¿Qué es el error “MySQL server has gone away” y cómo solucionarlo?

Error MySQL server has gone away
0
(0)

Estoy casi seguro de que alguna vez has visto el error MySQL server has gone away en tu sitio. Al fin y al cabo, cualquier página web que utilice una base de datos (es decir, casi todas), ha pasado alguna vez por esta situación.

De hecho, en el departamento de Soporte de LucusHost nos escriben a menudo por este error, casi siempre un poco preocupados pensando que es algo grave. Pero, en realidad, es un problema muy común y fácil de resolver.

Por si alguna vez te vuelve a ocurrir o en estos momentos tu web está mostrando el error “MySQL server has gone away”, en esta guía te explico qué significa, por qué ocurre y lo más importante de todo: cómo solucionarlo paso a paso.

¿Vamos con ello?

¿Qué significa el error «MySQL server has gone away» y por qué ocurre?

Lo primero que piensas cuando ves que tu pantalla muestra este mensaje es: ¿qué significa el error «MySQL server has gone away»?

Pues te cuento. Este error lo que nos indica es que la conexión entre la base de datos de tu página web y el servidor se ha cerrado de forma inesperada. De ahí la traducción al español: “El servidor MySQL ha desaparecido”

Esto quiere decir que, por algún motivo, el servidor de base de datos dejó de responder o terminó la conexión antes de tiempo.

Cuando esto sucede, se interrumpe la conexión entre la web y la base de datos, lo que provoca que la web no pueda recuperar ni guardar la información necesaria para que esta funcione.

Sobre las principales causas de este error, te las mostraré más adelante en esta guía. Pero, ¿cómo se muestra este error? ¿Cómo lo puedo identificar?

Cómo se muestra el «MySQL server has gone away» en WordPress

Pues mira, en la mayoría de los casos, este error lo vas a poder ver desde el navegador cuando estás intentando acceder a la web.

Aunque puede variar un poco en función del navegador que utilices, el MySQL server has gone away se verá de este modo:

error-mysql-has-gone-away

Principales causas del error «MySQL server has gone away»

Siempre que recibimos una consulta en Soporte por este error, la pregunta más repetida es: ¿cuál es la causa del «MySQL server has gone away»? ¿Por qué se produce?

Y es totalmente comprensible. Ver un mensaje así en tu web puede asustar un poco, aunque en la mayoría de casos no se trata de nada grave y, además, es muy fácil de solucionar.

En nuestra experiencia, las causas son casi siempre las mismas:

1. Una tabla de la base de datos está dañada o corrupta

Uno de los problemas que más se repite es que alguna de las tablas de la base de datos está dañada o corrupta.

Cuando MySQL intenta acceder a una tabla en mal estado y no puede procesarla, la conexión se cierra generando un error «MySQL server has gone away».

2. El tiempo de espera (timeout) es demasiado largo.

Otra de las razones más comunes está relacionada con los límites de tiempo establecidos a nivel del servidor o bien en la configuración de PHP.

Si una consulta a la base de datos tarda más de lo esperado, el sistema puede interpretar que esta ha fallado y cerrar todas las conexiones antes de que estas finalicen.

Esto suele pasar sobre todo en sitios web con mucho contenido y en momentos de importación o exportación de gran cantidad de datos.

3. Los paquetes de datos son demasiado grandes

Cuando una web intenta enviar o recibir gran cantidad de información en una sola consulta a la base de datos, puede superar el tamaño máximo de paquetes permitidos por MySQL.

Al igual que el caso del timeout, puede suceder cuando se realiza una importación de datos muy pesada.

Cómo solucionar el «MySQL server has gone away» en WordPress

Ahora que ya sabes cuáles son las causas más comunes, pasamos a la parte más importante de este post: cómo solucionar el MySQL server has gone away en WordPress.

Si no tienes muy claro cuál es el origen del error, te recomiendo que sigas este orden para ir descartando posibles casos y dar con la solución lo antes posible.

1. Reparar la base de datos

Sin duda, uno de los problemas que más se repite. Así que lo ideal es descartar que una base de datos dañada o corrupta sea la causa del «MySQL server has gone away».

Para ello, ve a cPanel y, en el apartado “Bases de datos MySQL®” verás estas dos opciones: «Verificar la base de datos» y «Reparar base de datos».

cPanel reparar base de datos

Primero selecciona “Verificar la base de datos” para comprobar si la base de datos está corrupta:

Verificar base de datos

En el caso de que así sea, pulsa en el botón “Reparar” para corregir los posibles errores que haya:

Reparar base de datos

Después de hacer esto, comprueba si el error ha desaparecido accediendo nuevamente a la web. ¿Funciona o sigue mostrando el «MySQL server has gone away»?

Si el error persiste, pasa al siguiente punto.

2. Ajustar la configuración del fichero class-wpdb.php

Si el origen del problema no era un error en la base de datos, lo más probable es que el origen del problema sea que el tiempo de espera (timeout) es demasiado largo.

Cuando una base de datos es muy grande o el tiempo de espera del servidor es más lento de lo normal, puede que WordPress no consiga completar las consultas dentro del tiempo establecido y genere un error “MySQL server has gone away».

Una forma de abordar este problema es modificando el fichero de WordPress class-wpdb.php

Puedes hacerlo siguiendo estos pasos:

1. Lo primero, accede a cPanel y, una vez dentro, haz clic en “Administrador de archivos”.

Administrador de archivos cPanel

2. Ahora ve a la ruta de instalación del WordPress y localiza la carpeta “wp-includes”, que es donde se almacena este fichero. Busca el fichero class-wpdb.php, haz clic derecho sobre él y pulsa en “Edit”:

edit-class-wpdb

3. Una vez que tengas el fichero abierto, pulsa Ctrl+F para buscar dentro del archivo la línea “$this->ready = true;”. Una vez localizada, añade: “$this->query(«set session wait_timeout=300»);” Debería quedarte así:

class-wpdb-configuracion

Esto eleva el límite de tiempo de la sesión MySQL a 300 segundos, dando un gran margen para completar las operaciones que necesiten más tiempo. El valor establecido se puede ajustar según las necesidades.

¡Importante! Ten en cuenta que este fichero es parte del núcleo de WordPress. Por tanto, si actualizas tu aplicación, la configuración se perderá y tendrás que volver a aplicarla.

2. Restaurar una copia de seguridad desde “Premium Backup”

¿Nada de lo anterior soluciona el problema? Entonces, te recomiendo que optes por restaurar una copia de seguridad. Lo más probable es que alguna actuación o cambio en tu web esté generando el «MySQL server has gone away».

Si tienes tu web en LucusHost, sabrás que en tu área de clientes tienes la herramienta “Premium Backup”. Con ella podrás acceder a todas tus copias y hacer cualquier restauración a golpe de clic.

Solo tienes que entrar al calendario y seleccionar una copia de seguridad de un día en el que sepas que tu web funcionaba correctamente, para volver a ese estado.

Cómo evitar que el error «MySQL server has gone away» vuelva a ocurrir

¡No hemos terminado! Una vez que hayas solucionado el error, lo mejor es tomar algunas medidas para que tu web no vuelva a mostrar el «MySQL server has gone away». No puedo asegurarte que no se vaya a volver a mostrar, pero las posibilidades sí se reducen bastante.

1. Optimiza las consultas a la base de datos

En la medida de lo posible, evita que tu web realice consultas muy pesadas o complejas. Esto incluye:

  • Evitar bucles innecesarios que realicen múltiples consultas SQL.
  • Utilizar índices en campos claves para mejorar el rendimiento de las consultas.
  • Si una tabla es muy grande, evitar que todos los datos se carguen en una misma petición.

Estas medidas son de gran utilidad, sobre todo en instalaciones de WordPress muy grandes y con muchos plugins.

2. Mantén la base de datos limpia

Con el tiempo, una base de datos puede llenarse de datos temporales que no son necesarios, aumentando el tamaño con información innecesaria y afectando al rendimiento de la web.

En LucusHost, todos nuestros planes de hosting trabajan con servidores LiteSpeed, por lo que si tienes instalado LiteSpeed Caché podrás limpiar la base de datos en solo algunos clics. Te explico.
Antes de nada, accede al panel de administración de WordPress y localiza la configuración de LiteSpeed Cache. A continuación, ve a la sección “Base de datos”.

LiteSpeed base de datos

Ahora verás la opción “Limpiar todo”, que vacía todo el contenido innecesario de la base de datos y la optimiza:

Limpiar base de datos LiteSpeed

3. Evitar plugins mal optimizados o desactualizados

Algunos plugins mal programados pueden generar consultas muy grandes o mal optimizadas a la base de datos. Para prevenirlo:

  • Mantén siempre tus plugins actualizados.
  • Desinstala los que no utilices.

4. Contratar un hosting que te ofrezca copias de seguridad

Aunque no evita directamente el error, tener copias de seguridad disponibles en todo momento te permitirá actuar rápido en caso de que la base de datos se corrompa o se pierda información.

En LucusHost recuerda que todos nuestros planes de hosting, ya sea Hosting WordPress, Hosting SSD o Hosting Elástico, por ejemplo, hacen dos copias de seguridad al día que guardamos hasta 6 meses. Así, si algo sale mal, puedes volver atrás en solo unos clics.

Y como ya vimos, al trabajar con LiteSpeed, tienes algunas herramientas que te permiten tener tu sitio optimizado y evitar errores como el «MySQL server has gone away».

¿Cuándo contactar con soporte técnico?

Aunque en esta guía te enseñamos algunos métodos para solucionar el error “MySQL server has gone away”, hay situaciones en las que es mejor contactar directamente con el soporte técnico de tu hosting.

Ya sabes que nosotros ofrecemos soporte técnico 24/7 los 365 días del año, y en caso de que tengas algún problema de este tipo te garantizamos una solución rápida y segura.

Debes de contactar con el servicio de soporte técnico si:

1. Has probado las soluciones de esta guía y el error persiste

Si tras seguir todos los pasos indicados más arriba, sigues sin poder solucionar el error; es momento de que contactes con nosotros para que revisemos más en profundidad qué puede estar sucediendo.

2. Tu base de datos está corrupta y no puedes repararla

Si intentando reparar la base de datos a través de cPanel, no consigues solucionar el error. Lo mejor es que contactes con nuestro equipo de soporte técnico para que revise qué está ocurriendo. Ellos lo revisarán y te ayudarán a que tu web vuelva a funcionar sin problemas 🙂

3. El error aparece de forma intermitente o sin causa aparente

En algunos casos, el error “MySQL server has gone away” no se muestra de forma constante, sino que aparece y desaparece. Si es así, lo mejor es que nos contactes para que (con la ayuda de los logs) podamos revisarlo de forma más profunda.

4. Tienes dudas sobre cómo aplicar alguno de los pasos de la guía

Si tienes dudas cuando cambias archivos como wp-config.php, arreglas la base de datos desde el panel o haces algún cambio más difícil, lo mejor es pedir ayuda.͏ Un fallo por falta de conocimiento puede empeorar la situación.

Resumen final: Qué hacer cuando aparece el error “MySQL server has gone away”

Lo dicho, el error “MySQL server has gone away” en WordPress es mucho más común de lo que parece y, por suerte, su solución suele estar al alcance de cualquiera. Con pasos que son bastante sencillos como reparar la base de datos, ajustar el tiempo de espera (timeout) o restaurar una copia de seguridad, lo normal es que tu web vuelva a funcionar en cuestión de unos minutos.

Además, si empleas buenas prácticas como optimizar las consultas SQL, mantener limpia la base de datos, usar plugins actualizados y contar con un hosting fiable con copias de seguridad (ejem, ejem), ya estarás haciendo mucho para evitar que te vuelva a ocurrir.

Recuerda: El error “MySQL server has gone away” no es un error grave, tiene solución rápida y, si en algún momento necesitas ayuda, siempre puedes contar con el soporte técnico de tu hosting.

Y ahora que has leído este post, la próxima vez que tu web muestre el mensaje “MySQL server has gone away”, ya sabrás cómo identificarlo, resolverlo y evitar que se repita😉

¡Puntúa este artículo!

Total votos: 0. Promedio: 0

Álvaro Villar

Técnico de soporte y productor musical en mis ratos libres. Me encargo de que tu sitio web esté bien ‘mezclado’ y sin interrupciones, para que todo funcione como debe. ¡Rendimiento sin pausas!

No hay comentarios

Escribe un comentario