Cómo solucionar el error 'Failed to connect to MySQL' en PrestaShop
¿Qué significa el error "Failed to connect to MySQL" en PrestaShop?
Si estás leyendo esto, es muy probable que hayas intentado acceder a tu tienda online y te hayas encontrado con un mensaje similar a este: "Failed to connect to MySQL" o, en español, "Error al conectar con MySQL". No te preocupes, no eres el primero al que le pasa y, sobre todo, tiene solución.
Este error es uno de los más comunes en el mundo del hosting y los CMS como PrestaShop. Básicamente, lo que te está diciendo tu tienda es que no puede comunicarse con la base de datos donde se almacenan tus productos, clientes, pedidos y configuración. Sin esa conexión, PrestaShop es como un coche sin motor: está ahí, pero no puede funcionar.
En esta guía extensa y pensada para principiantes, vamos a desglosar qué causa este error mysql prestashop y, lo más importante, cómo solucionarlo paso a paso. Vamos a ir desde lo más simple hasta lo más técnico, para que puedas recuperar tu tienda online cuanto antes.
¿Por qué ocurre el error de conexión MySQL en PrestaShop?
Antes de lanzarnos a solucionar, es fundamental entender por qué ocurre. Las causas más habituales son:
- Credenciales incorrectas: La contraseña o el usuario de la base de datos han cambiado, o están mal escritos en el archivo de configuración de PrestaShop.
- Servidor MySQL caído: El servicio de base de datos en tu servidor (donde está alojada tu web) se ha detenido o ha fallado.
- Saturación del servidor: El servidor está sobrecargado y no puede atender más conexiones.
- Cambios en el hosting: Tu proveedor de hosting ha movido la base de datos a otro servidor o ha cambiado el puerto de conexión.
- Corrupción de archivos: El archivo
parameters.php(donde PrestaShop guarda los datos de conexión) está dañado o incompleto. - Problemas de permisos: El usuario de la base de datos no tiene permisos suficientes para acceder a ella.
Primeros pasos: Diagnóstico rápido
No te lances a tocar archivos sin antes hacer una pequeña comprobación. A veces, la solución es mucho más sencilla de lo que parece.
1. Comprueba si el problema es general o solo tuyo
Abre tu tienda online en una ventana de incógnito o desde el móvil con datos (sin WiFi). Si el error aparece en todos los dispositivos, el problema es del servidor. Si solo te pasa a ti, podría ser un problema de caché de tu navegador.
2. Revisa el estado de tu hosting
Si tienes un panel de control como Syspanel (recuerda que se accede por el puerto 2106), entra y mira si hay algún aviso de incidencias. Muchos proveedores de hosting tienen un estado de servicio público. Si hay una incidencia conocida, solo te queda esperar a que la solucionen.
3. Comprueba si el servicio MySQL está activo
Si tienes acceso a un panel como Syspanel (puerto 2106), busca la sección de "Servicios" o "Procesos". Deberías ver algo como mysql o mariadb. Si está en rojo o parado, intenta iniciarlo. Si no sabes cómo, contacta con tu soporte.
[INFO] Muchos errores de conexión se resuelven simplemente reiniciando el servicio de base de datos. Es como apagar y encender el router cuando falla internet.
Soluciones paso a paso para el error "Failed to connect to MySQL"
Vamos ahora con las soluciones. Las he ordenado de menor a mayor complejidad. Te recomiendo que las pruebes en orden.
Solución 1: Verifica el archivo de configuración de PrestaShop
PrestaShop guarda la configuración de la base de datos en un archivo llamado parameters.php, que se encuentra en la carpeta app/config/ de tu instalación.
Cómo acceder al archivo:
- Entra a tu panel de control de hosting (Syspanel, puerto 2106) y busca el administrador de archivos. O conéctate por FTP con un cliente como FileZilla.
- Navega hasta la carpeta raíz de tu tienda. Normalmente es
public_htmlowww. - Dentro, busca la carpeta
appy luegoconfig. - Dentro de
config, busca el archivoparameters.php.
Qué debes comprobar:
Abre el archivo con un editor de texto (como el Bloc de notas o, mejor, uno como Notepad++ o Visual Studio Code). Busca las líneas que contienen database_host, database_user, database_password y database_name.
Deberían verse así:
'database_host' => 'localhost',
'database_user' => 'mi_usuario',
'database_password' => 'mi_contraseña',
'database_name' => 'mi_base_de_datos',
Comprueba que estos datos sean correctos. Si has cambiado recientemente la contraseña de tu base de datos, este archivo seguirá teniendo la antigua y no podrá conectar.
[TIP] Si no estás seguro de cuáles son tus credenciales, puedes encontrarlas en el panel de Syspanel (puerto 2106) en la sección de "Bases de datos". Allí podrás ver el nombre y el usuario, pero la contraseña normalmente está oculta. Si la has olvidado, puedes cambiarla desde ahí (aunque luego tendrás que actualizar este archivo).
Cómo corregirlo:
Si los datos son incorrectos, cámbialos por los correctos y guarda el archivo. Luego, intenta acceder a tu tienda.
[WARNING] Ten muchísimo cuidado al editar este archivo. Un solo carácter mal puesto (una coma, una comilla) puede romper tu tienda por completo. Si no te sientes seguro, haz una copia de seguridad del archivo antes de editarlo.
Solución 2: Cambia "localhost" por la IP del servidor
En ocasiones, el error de conexión MySQL en PrestaShop se debe a que el servidor de la base de datos no está en el mismo sitio que el de la web, o el sistema de resolución de nombres internos falla.
En el mismo archivo parameters.php, busca la línea 'database_host'.
- Si pone
'localhost', prueba a cambiarlo por'127.0.0.1'. - Si ya pone una IP (como
'127.0.0.1'), prueba a cambiarlo por'localhost'.
Guarda el archivo y comprueba. Es un cambio rápido que a veces soluciona el problema de conexión mysql prestashop.
Solución 3: Reinicia el servicio MySQL (si tienes acceso SSH)
Si tienes conocimientos de Linux y acceso SSH a tu servidor, puedes reiniciar el servicio de base de datos directamente. Esto es muy efectivo si el servicio se ha quedado colgado.
Pasos para reiniciar MySQL:
-
Conéctate a tu servidor por SSH (con PuTTY en Windows o la terminal en Mac/Linux).
-
Ejecuta el siguiente comando (dependiendo de tu sistema, puede ser
mysqlomariadb):sudo systemctl restart mysqlO si tu servidor es más antiguo:
sudo service mysql restart -
Espera unos segundos y comprueba el estado:
sudo systemctl status mysql
Deberías ver algo como "Active: active (running)".
[INFO] Si no sabes qué es SSH o no tienes acceso, no te preocupes. Esta solución es opcional. Puedes pedirle a tu proveedor de hosting que lo haga por ti.
Solución 4: Aumenta el límite de conexiones (para servidores muy cargados)
Si tu tienda tiene mucho tráfico o tu servidor es compartido, es posible que se esté alcanzando el límite de conexiones MySQL. Esto genera el error "Failed to connect to MySQL".
Este ajuste se hace en el archivo de configuración de MySQL (my.cnf o my.ini), pero requiere acceso SSH y permisos de administrador. No es algo que se pueda hacer desde el panel de control.
Qué buscar:
Dentro del archivo de configuración, busca la línea:
max_connections = 150
Puedes aumentarla a un valor más alto, como 300 o 500, dependiendo de la memoria de tu servidor.
[WARNING] Aumentar
max_connectionsconsume más memoria RAM. Si tu servidor no tiene suficiente, podrías empeorar las cosas. Si no estás seguro de lo que haces, mejor pide ayuda a tu soporte técnico.
Solución 5: Revisa los permisos del usuario de la base de datos
Es posible que el usuario de la base de datos no tenga permisos para conectarse desde el servidor donde está alojada tu web. Esto es más común si la base de datos y la web están en servidores diferentes.
Desde tu panel de Syspanel (puerto 2106), en la sección de "Bases de datos", busca la opción de "Añadir usuario a la base de datos" o "Gestionar permisos". Asegúrate de que el usuario tiene todos los privilegios (SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, etc.) sobre la base de datos de tu PrestaShop.
Solución 6: Repara las tablas de la base de datos
Si el error persiste, puede haber tablas corruptas en tu base de datos. Esto puede ocurrir por cortes de luz, cierres inesperados del servidor, etc.
Cómo reparar desde Syspanel:
- Entra en Syspanel (puerto 2106) y busca la sección de "Bases de datos" o "phpMyAdmin".
- Selecciona tu base de datos.
- En la parte inferior de la página, verás una opción que dice "Marcar todas" o un checkbox para seleccionar todas las tablas.
- En el menú desplegable "Con selección:", elige "Reparar tabla".
Esto intentará reparar cualquier corrupción en las tablas. Es un proceso seguro y no debería borrar datos.
[TIP] Si no encuentras la opción de reparar, también puedes ejecutar el comando
REPAIR TABLEdesde la pestaña "SQL" en phpMyAdmin, pero es más avanzado. La opción gráfica es más fácil.
Solución 7: Contacta con tu proveedor de hosting
Si has llegado hasta aquí y el problema persiste, es el momento de delegar en los profesionales. Contacta con el soporte técnico de tu hosting y proporciónales la siguiente información:
- El mensaje de error exacto.
- La URL de tu tienda.
- Capturas de pantalla del error.
- Los pasos que ya has intentado (les ahorrarás tiempo).
Ellos podrán revisar los logs del servidor y ver si hay un error más profundo que no es visible desde fuera.
Preguntas frecuentes (FAQ) sobre el error MySQL en PrestaShop
Para cerrar, te dejo con una sección de preguntas rápidas que suelen hacerse los usuarios cuando ven este error.
¿Puedo perder mis datos si se produce este error?
No, este error no borra datos. Solo impide que tu tienda acceda a ellos. Tus productos, pedidos y clientes siguen ahí, a salvo en la base de datos. Una vez que se restablece la conexión, todo vuelve a la normalidad.
¿Cuánto tiempo se tarda en solucionar?
Depende de la causa. Si es un problema de credenciales, puedes tardar 5 minutos. Si es un problema del servidor, puede tardar desde unos minutos hasta unas horas, dependiendo de tu proveedor.
¿Puedo prevenir este error en el futuro?
Sí, con estas buenas prácticas:
- Mantén una copia de seguridad de tu tienda y base de datos.
- No cambies las contraseñas de la base de datos sin actualizar el archivo
parameters.php. - Mantén PrestaShop actualizado a la última versión.
- Monitoriza el estado de tu servidor para detectar problemas antes de que afecten a tu tienda.
¿Qué es Syspanel y por qué se menciona tanto?
Syspanel es un panel de control de hosting (similar a cPanel o Plesk) que te permite gestionar tu servidor, bases de datos, archivos, etc. Es muy común en algunos proveedores de hosting. Recuerda que su acceso se realiza a través del puerto 2106.
Conclusión
El error "Failed to connect to MySQL" en PrestaShop es un contratiempo serio, pero no es el fin del mundo. Siguiendo esta guía, podrás resolver la gran mayoría de los casos tú mismo, sin necesidad de ser un experto en Linux o SysAdmin.
Recuerda el orden lógico: primero verifica las credenciales, luego el estado del servicio, después la configuración y, si todo falla, contacta con tu soporte. La clave es la paciencia y la meticulosidad.
Espero que esta guía te haya sido de gran ayuda. Si tienes alguna otra duda, no dudes en consultar con tu proveedor de hosting o en la comunidad de PrestaShop. ¡Mucha suerte con tu tienda online!
