Solucionar el error 'MySQL ha abandonado la conexión' en PrestaShop con DirectAdmin
¿Qué significa el error "MySQL server has gone away" en PrestaShop?
Si estás leyendo esto, es muy probable que hayas visto en tu tienda PrestaShop un mensaje parecido a este: "MySQL server has gone away" o "Error: MySQL ha abandonado la conexión". No te preocupes, no has roto nada y tu tienda no está perdida. Es uno de los errores más comunes cuando trabajamos con PrestaShop y DirectAdmin, y lo bueno es que tiene solución.
Este error aparece cuando tu tienda intenta conectarse a la base de datos y el servidor MySQL no responde o cierra la conexión de forma inesperada. Es como si llamaras por teléfono a alguien y, justo cuando te iba a dar una respuesta importante, colgara. Pues algo parecido pasa entre PrestaShop y tu base de datos.
En este artículo te voy a explicar paso a paso cómo solucionar el error MySQL PrestaShop DirectAdmin, incluso si no eres una persona técnica. Vamos a ir desde lo más básico hasta lo más avanzado, para que puedas probar soluciones según tu nivel de confianza.
¿Por qué ocurre este error en PrestaShop con DirectAdmin?
Antes de lanzarnos a arreglar nada, conviene entender qué está pasando. El error "MySQL server has gone away" en PrestaShop puede deberse a varias razones. Las más frecuentes son:
- El tiempo de espera de conexión es demasiado corto: MySQL corta las conexiones que están inactivas durante un tiempo determinado. Si tu tienda tarda en procesar una petición, MySQL la cierra.
- El paquete de datos es demasiado grande: Si tu base de datos tiene muchas tablas o los datos son pesados, MySQL puede rechazar la conexión.
- El servidor está sobrecargado: Si tu sitio recibe mucho tráfico o hay procesos pesados, MySQL puede agotar sus recursos.
- Límites de memoria o de conexiones: DirectAdmin tiene configuraciones que limitan cuántas conexiones simultáneas se permiten. Si se superan, el servidor "abandona" la conexión.
- Problemas con el archivo de configuración de PrestaShop: En ocasiones, los parámetros de conexión no son los correctos.
No te agobies con los tecnicismos. Te voy a dar soluciones prácticas que puedes aplicar tú mismo, desde el panel de control de DirectAdmin.
Solución 1: Aumentar el tiempo de espera de MySQL (la más efectiva)
Esta es la solución más común y la que suele resolver el error en el 80% de los casos. Se trata de aumentar el valor de wait_timeout y max_execution_time en la configuración de MySQL.
Paso 1: Accede a DirectAdmin
Entra en tu panel de control de DirectAdmin con tus credenciales de administrador. Normalmente es una URL como https://tudominio.com:2222.
Paso 2: Busca la sección de MySQL
Dentro de DirectAdmin, busca un icono o apartado que diga "MySQL Management" o "Administración de MySQL". Haz clic ahí.
Paso 3: Localiza el archivo de configuración
En la mayoría de los servidores con DirectAdmin, el archivo de configuración de MySQL se llama my.cnf o my.ini. Puedes encontrarlo en la ruta /etc/my.cnf o /etc/mysql/my.cnf. Si no lo ves en el panel, puedes acceder por SSH (si sabes cómo) o solicitarlo a tu proveedor de hosting.
Paso 4: Aumenta los valores
Dentro del archivo de configuración, busca las líneas que dicen wait_timeout y max_execution_time. Si no existen, las añades. Te recomiendo estos valores:
wait_timeout = 300(300 segundos, es decir, 5 minutos)max_execution_time = 300max_allowed_packet = 64M(esto ayuda con paquetes de datos grandes)
Guarda el archivo y reinicia MySQL. En DirectAdmin puedes hacerlo desde el mismo apartado de MySQL, o bien con el comando service mysql restart si tienes acceso SSH.
[WARNING] Si no te sientes cómodo editando archivos de configuración, no lo hagas directamente. Pide ayuda a tu proveedor de hosting o a un técnico. Un error aquí puede dejar tu tienda caída.
Solución 2: Revisar el archivo de configuración de PrestaShop
A veces el problema no está en MySQL, sino en cómo PrestaShop se conecta a él. El archivo que controla esto se llama parameters.php y está en la carpeta app/config/ de tu instalación de PrestaShop.
Paso 1: Accede al archivo
Puedes hacerlo desde el administrador de archivos de DirectAdmin, que suele estar en la sección "File Manager". Busca la ruta public_html/app/config/parameters.php.
Paso 2: Edita los valores de conexión
Dentro del archivo verás líneas como estas:
'database_host' => 'localhost',
'database_name' => 'tu_base_de_datos',
'database_user' => 'tu_usuario',
'database_password' => 'tu_contraseña',
Asegúrate de que el host es localhost y de que el nombre de la base de datos, el usuario y la contraseña son correctos. A veces, tras una migración o cambio de servidor, estos datos quedan desactualizados y provocan el error.
[TIP] Si no recuerdas tu contraseña de la base de datos, puedes cambiarla desde DirectAdmin en la sección "MySQL Management". Luego actualiza el archivo
parameters.phpcon la nueva contraseña.
Solución 3: Limpiar la caché de PrestaShop
PrestaShop guarda archivos de caché que a veces se corrompen y provocan errores de conexión. Es una solución rápida que no requiere conocimientos técnicos avanzados.
Paso 1: Accede al File Manager de DirectAdmin
Ve a la carpeta public_html y busca la carpeta var/cache. Dentro de ella hay subcarpetas como dev o prod.
Paso 2: Borra el contenido
Elimina todos los archivos que haya dentro de las carpetas dev y prod, pero no borres las carpetas en sí. Si no puedes borrarlos todos, al menos borra los que terminen en .php.
Paso 3: Activa el modo mantenimiento
Mientras haces esto, es buena idea poner tu tienda en modo mantenimiento para que los clientes no vean errores. Puedes hacerlo desde el panel de administración de PrestaShop en "Parámetros generales" > "Mantenimiento".
[INFO] Después de borrar la caché, tu tienda tardará unos segundos en regenerarla. No la borres mientras hay compras en curso, mejor hazlo en horas de poco tráfico.
Solución 4: Aumentar el límite de memoria de PHP
El error también puede aparecer si PHP no tiene suficiente memoria para procesar las consultas de PrestaShop. Esto es muy común en tiendas con muchos productos o módulos.
Paso 1: Localiza el archivo php.ini
En DirectAdmin, busca la sección "PHP Settings" o "Configuración de PHP". También puedes crear un archivo llamado php.ini en la raíz de tu sitio (carpeta public_html).
Paso 2: Aumenta la memoria
Dentro del archivo, añade o modifica esta línea:
memory_limit = 256M
Guarda los cambios y reinicia PHP (en DirectAdmin suele hacerse automáticamente).
Paso 3: También puedes hacerlo desde .htaccess
Si no encuentras el archivo php.ini, puedes añadir estas líneas al archivo .htaccess de tu raíz:
php_value memory_limit 256M
php_value max_execution_time 300
[TIP] No todos los servidores permiten modificar valores de PHP desde
.htaccess. Si no funciona, consulta con tu hosting.
Solución 5: Revisar los límites de conexiones de MySQL
En DirectAdmin, el servidor MySQL tiene un límite de conexiones simultáneas. Si tu tienda recibe mucho tráfico o hay otros sitios en el mismo servidor, ese límite se puede agotar.
Paso 1: Comprueba el límite actual
Puedes verlo desde la sección de MySQL en DirectAdmin, o con el comando SHOW VARIABLES LIKE 'max_connections' si tienes acceso a phpMyAdmin.
Paso 2: Aumenta el límite
En el archivo my.cnf que vimos antes, busca max_connections y auméntalo. Por ejemplo:
max_connections = 150
Guarda y reinicia MySQL.
[WARNING] Aumentar el límite de conexiones puede consumir más memoria del servidor. Si tu plan de hosting es limitado, es mejor que consultes con tu proveedor antes de hacerlo.
Solución 6: Optimizar las tablas de la base de datos
A veces el error aparece porque hay tablas corruptas o demasiado fragmentadas. DirectAdmin tiene una herramienta para optimizarlas.
Paso 1: Accede a phpMyAdmin
Desde DirectAdmin, busca el icono de "phpMyAdmin" y haz clic. Se abrirá una ventana para que selecciones tu base de datos.
Paso 2: Selecciona todas las tablas
En la pestaña de tu base de datos, verás todas las tablas. Marca la casilla "Seleccionar todo".
Paso 3: Optimiza
En el menú desplegable inferior, elige "Optimizar tabla" y haz clic en "Continuar". Esto puede tardar unos segundos, dependiendo del tamaño de tu base de datos.
[INFO] Esta operación es segura y no borra datos. Solo reorganiza la información para que MySQL acceda a ella más rápido.
Solución 7: Revisar los logs de errores
Si ninguna de las soluciones anteriores funciona, es hora de mirar los registros de errores para entender mejor qué está pasando.
Paso 1: Accede a los logs de DirectAdmin
En DirectAdmin, busca la sección "Error Logs" o "Registros de errores". Ahí verás el log de errores de MySQL.
Paso 2: Busca el error específico
Busca líneas que contengan "gone away" o "lost connection". Te darán pistas sobre si el problema es de memoria, de tiempo o de otra cosa.
Paso 3: Comparte la información
Si no entiendes lo que ves, copia el error y envíalo a tu proveedor de hosting. Ellos podrán interpretarlo y darte una solución personalizada.
Preguntas frecuentes (FAQ)
¿El error "MySQL server has gone away" es peligroso para mi tienda?
No es peligroso en sí, pero puede provocar que los clientes no puedan completar sus compras. Es importante solucionarlo cuanto antes para no perder ventas.
¿Puedo solucionar este error sin conocimientos técnicos?
Sí, las soluciones 2, 3 y 6 son bastante accesibles para principiantes. Las demás requieren un poco más de cuidado, pero con las instrucciones de este artículo puedes intentarlas.
¿Por qué aparece de repente si antes funcionaba bien?
Suele aparecer después de actualizar PrestaShop, cambiar de servidor, instalar un módulo nuevo o cuando el tráfico de tu tienda aumenta. Cualquiera de esos factores puede desestabilizar la conexión.
¿Debo contactar con mi proveedor de hosting?
Si has probado todas las soluciones y el error sigue, sí. Es posible que el problema esté en el servidor y no en tu tienda. Tu proveedor puede ajustar los parámetros de MySQL de forma global.
Conclusión final
El error "MySQL ha abandonado la conexión" en PrestaShop con DirectAdmin puede parecer un quebradero de cabeza, pero como has visto, tiene soluciones claras y aplicables. Te recomiendo empezar por la solución 1 (aumentar el tiempo de espera), ya que es la más efectiva, y seguir con las demás si no funciona.
Recuerda siempre hacer una copia de seguridad de tu base de datos antes de hacer cambios importantes. Y si en algún momento te sientes perdido, no dudes en pedir ayuda profesional. Tu tienda es importante y merece estar siempre operativa.
Espero que este artículo te haya sido de gran ayuda. Si tienes otras preguntas sobre el error MySQL PrestaShop DirectAdmin o sobre cómo solucionar error MySQL DirectAdmin, déjalas en los comentarios y estaré encantado de ayudarte. ¡Tu tienda volverá a funcionar en plena forma!
