Cómo solucionar el error 'MySQL server has gone away' en PrestaShop con Syspanel
¿Qué significa el error "MySQL server has gone away" en PrestaShop?
Si estás leyendo esto, es muy probable que hayas visto un mensaje parecido a este en tu tienda online: "MySQL server has gone away" o "Error de base de datos: MySQL server has gone away". No te preocupes, no eres el único, y lo más importante: tiene solución.
Este error es uno de los más comunes en PrestaShop, especialmente cuando la tienda lleva tiempo funcionando o cuando el volumen de visitas aumenta. Básicamente, lo que te está diciendo el sistema es que tu tienda intentó hacer una consulta a la base de datos, pero el servidor de MySQL (la base de datos) ya no estaba disponible o había cerrado la conexión.
Piensa en ello como cuando intentas llamar por teléfono a un amigo, pero su línea se ha cortado. Tu PrestaShop intenta "llamar" a la base de datos, pero esta ya no responde.
¿Por qué ocurre este error en PrestaShop?
Antes de lanzarnos a solucionarlo, es importante entender por qué ocurre. Las causas más frecuentes son:
-
Tiempo de espera agotado (timeout): MySQL cierra conexiones que han estado inactivas durante un tiempo determinado. Si tu tienda tarda demasiado en procesar una petición, la conexión se cierra.
-
Límite de tamaño de paquetes: Si intentas importar o guardar datos muy grandes (como una copia de seguridad o un CSV), MySQL puede rechazarlos si superan el tamaño máximo permitido.
-
Falta de memoria del servidor: Cuando el servidor se queda sin memoria, MySQL puede detenerse o reiniciarse, cortando todas las conexiones activas.
-
Reinicio del servicio MySQL: Si el servicio se reinicia (por mantenimiento, por caída o por configuración), todas las conexiones se pierden.
-
Configuración incorrecta en PrestaShop: A veces, los parámetros de conexión a la base de datos están mal configurados o no son adecuados para la versión del servidor.
La solución definitiva con Syspanel
Aquí es donde entra en juego Syspanel. Si tu hosting utiliza Syspanel (antes conocido como HestiaCP), tienes una herramienta muy potente para solucionar este problema de raíz. Recuerda que el acceso a Syspanel se realiza a través del puerto 2106 (por ejemplo, https://tu-dominio.com:2106).
Vamos a ver paso a paso cómo solucionar el error MySQL server has gone away PrestaShop utilizando Syspanel.
Paso 1: Acceder a Syspanel
Lo primero que necesitas es entrar en tu panel de control. Para ello:
-
Abre tu navegador y escribe la dirección de tu servidor seguida de
:2106. Por ejemplo:https://tu-dominio.com:2106ohttps://tu-ip:2106. -
Introduce tu usuario y contraseña de administrador.
-
Una vez dentro, verás el panel principal con todas las opciones de gestión.
[INFO] Si no recuerdas tu contraseña de Syspanel, contacta con tu proveedor de hosting para que te la restablezcan. No intentes adivinarla, podrías bloquear tu acceso.
Paso 2: Aumentar el límite de tiempo de espera de MySQL
La causa más común de este error es que el tiempo de espera de MySQL es demasiado corto. Vamos a aumentarlo para que las conexiones no se cierren tan rápido.
-
En Syspanel, busca la sección de "Servidor" o "Server" en el menú lateral.
-
Dentro, busca la opción "Base de datos" o "Database".
-
Ahora, busca la configuración de MySQL. Dependiendo de la versión de Syspanel, puede estar en un apartado llamado "Configuración de MySQL" o "MySQL Configuration".
-
Verás un archivo de configuración (normalmente llamado
my.cnfomy.ini). Necesitas modificar los siguientes parámetros:-
wait_timeout: Este es el tiempo en segundos que MySQL espera antes de cerrar una conexión inactiva. Te recomiendo ponerlo a 300 (5 minutos) como mínimo. -
max_allowed_packet: Este es el tamaño máximo de los paquetes de datos. Si tu tienda maneja imágenes o archivos grandes, sube este valor a 64M (64 megabytes) o incluso 128M. -
interactive_timeout: Similar al anterior, pero para sesiones interactivas. Ponlo también a 300.
-
-
Guarda los cambios y reinicia el servicio de MySQL. Para ello, busca el botón de "Reiniciar" o "Restart" junto al servicio MySQL.
[WARNING] Ten mucho cuidado al modificar estos valores. Si pones números demasiado altos, podrías sobrecargar tu servidor. Los valores que te doy son seguros y suficientes para la mayoría de tiendas PrestaShop.
Paso 3: Optimizar la memoria del servidor
El error MySQL server has gone away PrestaShop también puede ocurrir si el servidor se queda sin memoria. Vamos a comprobarlo y optimizarlo.
-
En Syspanel, ve a la sección de "Monitor" o "Estadísticas".
-
Revisa el uso de memoria RAM. Si está al 90% o más, tienes un problema de recursos.
-
Si es así, las soluciones son:
-
Reducir la carga: Desactiva módulos de PrestaShop que no uses, limpia las tablas de caché.
-
Aumentar la memoria: Si tu plan de hosting lo permite, contacta con tu proveedor para aumentar la RAM.
-
-
También puedes ajustar los parámetros de MySQL en Syspanel para que use menos memoria. Busca la opción de "Ajustes de rendimiento" y reduce el número de conexiones simultáneas si no las necesitas.
Paso 4: Configurar correctamente PrestaShop
A veces, el problema no está solo en MySQL, sino en cómo PrestaShop gestiona las conexiones. Vamos a revisar la configuración de tu tienda.
-
Accede a tu panel de administración de PrestaShop.
-
Ve a "Parámetros avanzados" > "Base de datos".
-
Aquí verás los datos de conexión. Asegúrate de que:
-
El servidor de base de datos es
localhost(o la IP correcta si usas un servidor externo). -
El prefijo de las tablas es el correcto (normalmente
ps_). -
El motor de base de datos es
InnoDB(recomendado para PrestaShop).
-
-
Guarda los cambios y limpia la caché de PrestaShop. Para ello, ve a "Parámetros avanzados" > "Rendimiento" y haz clic en "Vaciar la caché".
[TIP] Si tienes varias tiendas o un catálogo muy grande, considera activar la opción "Persistencia de conexiones" en la configuración de base de datos de PrestaShop. Esto ayuda a mantener la conexión abierta entre peticiones.
Paso 5: Revisar los logs de error
Si después de los pasos anteriores el error persiste, es hora de investigar más a fondo. Syspanel guarda registros de errores que te darán pistas.
-
En Syspanel, busca la sección de "Registros" o "Logs".
-
Ve al log de MySQL o MariaDB. Busca errores que coincidan con el momento en que tu tienda da el error.
-
También revisa el log de PHP y el de Apache/Nginx. A veces, el error de MySQL es solo un síntoma de otro problema.
-
Si ves errores de "memoria insuficiente" o "demasiadas conexiones", ya sabes por dónde tirar.
Paso 6: Soluciones adicionales para casos complejos
Si has llegado hasta aquí y el error MySQL server has gone away sigue apareciendo, prueba estas soluciones avanzadas:
1. Cambiar el host de la base de datos
Si tu base de datos está en un servidor diferente al de tu web, el problema puede ser la latencia. Intenta cambiar el host de localhost a 127.0.0.1 (o viceversa) en la configuración de PrestaShop.
2. Reducir el tiempo de ejecución de PHP
A veces, PHP tarda demasiado en procesar una página y MySQL cierra la conexión. En Syspanel, puedes aumentar el max_execution_time de PHP a 300 segundos.
3. Desactivar módulos problemáticos
Algunos módulos de PrestaShop son conocidos por causar problemas de conexión. Desactiva los módulos que no uses y ve activándolos uno a uno para identificar al culpable.
4. Actualizar todo
Asegúrate de tener la última versión de PrestaShop, de los módulos y del sistema operativo del servidor. Las actualizaciones corrigen errores conocidos.
Preguntas frecuentes sobre el error MySQL en PrestaShop
¿El error "MySQL server has gone away" es peligroso para mi tienda?
No es peligroso en el sentido de que no pierdes datos, pero sí puede dejar tu tienda temporalmente inaccesible. Es un problema de conexión, no de integridad de datos.
¿Cuánto tiempo se tarda en solucionar?
Con los pasos que te he dado, la mayoría de los casos se solucionan en menos de 30 minutos. Si el problema es de recursos del servidor, puede requerir una llamada a tu proveedor de hosting.
¿Puedo evitar que vuelva a ocurrir?
Sí, siguiendo las recomendaciones de configuración que te he dado (aumentar timeouts, optimizar memoria, mantener todo actualizado), las posibilidades de que vuelva a ocurrir se reducen drásticamente.
¿Necesito conocimientos técnicos avanzados?
No. Los pasos que te he explicado son sencillos y están pensados para que cualquier persona pueda seguirlos, incluso sin experiencia técnica previa. Solo necesitas acceso a Syspanel y a tu panel de administración de PrestaShop.
¿Y si nada de esto funciona?
Si has probado todos los pasos y el error persiste, contacta con tu proveedor de hosting. Puede que haya un problema más profundo en el servidor que solo ellos puedan solucionar. Explícales que has hecho los pasos de configuración básicos y que necesitas ayuda adicional.
Resumen final: checklist para solucionar el error
Para que no se te olvide nada, aquí tienes un resumen de todo lo que debes hacer:
- Accede a Syspanel usando el puerto 2106.
- Aumenta
wait_timeouta 300 segundos. - Aumenta
max_allowed_packeta 64M o 128M. - Reinicia el servicio MySQL.
- Revisa la memoria del servidor y optimiza si es necesario.
- Configura correctamente PrestaShop (motor InnoDB, prefijo correcto).
- Limpia la caché de PrestaShop.
- Revisa los logs de MySQL y PHP para más pistas.
- Aplica soluciones avanzadas si el error persiste.
- Contacta con tu hosting si nada funciona.
Espero que esta guía te haya sido de ayuda y que tu tienda PrestaShop vuelva a funcionar sin problemas. Recuerda que, con Syspanel, tienes una herramienta muy potente para gestionar y solucionar este tipo de errores. Si tienes cualquier duda, déjala en los comentarios y estaré encantado de ayudarte.
¡Mucha suerte con tu tienda online!
