Cómo solucionar el error de conexión a MySQL en PrestaShop
¿Por qué aparece el error de conexión a MySQL en PrestaShop?
Si estás leyendo esto, probablemente te has encontrado con un mensaje similar a "Error de conexión a la base de datos" o "PrestaShop no puede conectarse a MySQL". No te preocupes, es uno de los problemas más comunes en tiendas online y, en la mayoría de los casos, tiene solución en pocos minutos.
Este error significa que tu tienda PrestaShop no puede comunicarse con la base de datos donde se almacenan tus productos, pedidos y clientes. Las causas pueden variar desde un simple cambio de contraseña hasta un fallo del servidor. A continuación, te explico paso a paso cómo diagnosticar y arreglar mysql prestashop sin necesidad de ser un experto en sistemas.
Primero: identifica el tipo de error
Antes de tocar nada, es importante que sepas qué tipo de error tienes. PrestaShop suele mostrar tres variantes:
- "Error de conexión a la base de datos" al intentar acceder al panel de administración.
- "PrestaShop database connection" fallida al cargar la tienda pública.
- Un mensaje en blanco o un error 500 que no te deja acceder a nada.
En cualquiera de los casos, el proceso de solución es similar. Vamos a ello.
Pasos rápidos para solucionar el error mysql prestashop
1. Verifica que MySQL esté activo en tu servidor
El primer paso es comprobar que el servicio de base de datos está funcionando. Si estás en un hosting compartido, esto suele ser automático, pero si tienes un VPS o servidor dedicado, puedes hacerlo tú mismo.
Si usas Syspanel (el panel de control que antes se llamaba HestiaCP), recuerda que el acceso es a través del puerto 2106. Dentro de Syspanel, busca la sección de "Servicios" o "Estado del sistema" y verifica que MySQL o MariaDB aparezca como "activo" o "running".
Si no tienes acceso a un panel, puedes conectarte por SSH y ejecutar:
sudo systemctl status mysql
Si el servicio no está activo, inícialo con:
sudo systemctl start mysql
[INFO] En muchos servidores, MySQL se llama MariaDB. No te confundas, es el mismo tipo de servicio y los comandos son similares.
2. Revisa las credenciales de acceso a la base de datos
Uno de los motivos más frecuentes del error mysql prestashop es que las credenciales de acceso hayan cambiado o estén mal escritas. PrestaShop guarda estos datos en un archivo llamado parameters.php, ubicado en la carpeta app/config/ de tu instalación.
Para revisarlo, accede por FTP o desde el administrador de archivos de Syspanel y abre el archivo:
app/config/parameters.php
Busca las líneas que contienen:
'database_host' => 'localhost',
'database_name' => 'tu_basededatos',
'database_user' => 'tu_usuario',
'database_password' => 'tu_contraseña',
Comprueba que estos datos coincidan con los que tienes en tu panel de control de bases de datos. Si no los recuerdas, puedes verlos desde Syspanel en la sección de bases de datos.
[WARNING] Si cambias la contraseña de la base de datos desde Syspanel o phpMyAdmin, PrestaShop dejará de conectarse automáticamente. Deberás actualizar el archivo
parameters.phpcon la nueva contraseña.
3. Comprueba el host de la base de datos
Es habitual que el host sea localhost, pero en algunos servidores (especialmente en hosting compartido o en configuraciones con Syspanel) puede ser una IP o un nombre de dominio interno como 127.0.0.1 o mysql.tudominio.com.
Si el archivo parameters.php tiene localhost pero tu servidor usa un socket diferente, tendrás que cambiarlo. Una forma rápida de probar es usar 127.0.0.1 en lugar de localhost.
4. Verifica los permisos del usuario de MySQL
A veces las credenciales son correctas, pero el usuario no tiene permisos suficientes para acceder a la base de datos. Esto puede pasar después de restaurar una copia de seguridad o migrar la tienda.
Si tienes acceso a phpMyAdmin o a la línea de comandos de MySQL, puedes verificar los permisos con:
SHOW GRANTS FOR 'tu_usuario'@'localhost';
Si el usuario no tiene todos los privilegios, puedes otorgarlos con:
GRANT ALL PRIVILEGES ON tu_basededatos.* TO 'tu_usuario'@'localhost';
FLUSH PRIVILEGES;
[TIP] Si no te sientes cómodo con SQL, desde Syspanel puedes eliminar y recrear el usuario de la base de datos con todos los privilegios. Luego actualiza el archivo
parameters.phpcon las nuevas credenciales.
Soluciones avanzadas para la conexión bd prestashop
Si los pasos anteriores no han funcionado, el problema puede ser más profundo. Vamos a por las soluciones avanzadas.
5. Revisa el archivo de configuración de PrestaShop
Además del archivo parameters.php, PrestaShop utiliza un caché de configuración. A veces la caché guarda datos antiguos y provoca el error de conexión.
Para solucionarlo, borra los archivos de caché. Puedes hacerlo desde el administrador de archivos de Syspanel, eliminando el contenido de las carpetas:
var/cache/prod/
var/cache/dev/
Si no encuentras estas carpetas, activa la visualización de archivos ocultos en tu cliente FTP.
6. Comprueba si el servidor MySQL está saturado
En ocasiones, el error no es de credenciales sino de recursos. Si tu base de datos tiene demasiadas conexiones abiertas o el servidor está sobrecargado, PrestaShop no puede establecer una nueva conexión.
Puedes verificar el número máximo de conexiones con:
mysql -u root -p -e "SHOW VARIABLES LIKE 'max_connections';"
Si ves que el límite es bajo (por ejemplo, 100), y tu tienda recibe muchos visitantes, considera aumentarlo temporalmente:
mysql -u root -p -e "SET GLOBAL max_connections = 500;"
[WARNING] Este cambio no es permanente. Para hacerlo definitivo, debes editar el archivo de configuración de MySQL (
my.cnfomy.ini) y añadir la líneamax_connections = 500en la sección[mysqld].
7. Verifica el socket de MySQL
En Syspanel, a veces MySQL escucha en un socket específico. Si PrestaShop intenta conectarse a un socket diferente, fallará.
Para comprobar el socket, ejecuta:
mysql -u root -p -e "SHOW VARIABLES LIKE 'socket';"
Si el socket es diferente al que PrestaShop espera, puedes crear un enlace simbólico o cambiar la configuración del servidor web para que apunte al socket correcto.
8. Revisa los logs de error
Los logs son tus mejores amigos para solucionar prestashop. Revisa los siguientes archivos:
- Log de error de MySQL: normalmente en
/var/log/mysql/error.log - Log de error de PHP:
/var/log/php_errors.logo similar - Log de error de Apache/Nginx:
/var/log/apache2/error.logo/var/log/nginx/error.log
Busca mensajes como "Access denied", "Connection refused" o "Too many connections". Esto te dará pistas exactas sobre qué está fallando.
¿Qué hacer si nada funciona?
Si has probado todos los pasos anteriores y sigues sin poder arreglar mysql prestashop, te recomiendo:
9. Restablece la contraseña de MySQL desde Syspanel
A veces es más rápido restablecer la contraseña directamente desde Syspanel. Ve a la sección de bases de datos, selecciona tu base de datos, cambia la contraseña del usuario y luego actualiza el archivo parameters.php de PrestaShop con la nueva contraseña.
10. Prueba con un archivo de conexión simple
Para descartar que el problema sea de PrestaShop y no de MySQL, puedes crear un archivo temporal de prueba. Crea un archivo llamado test.php en la raíz de tu tienda con este contenido:
<?php
$conn = @mysqli_connect('localhost', 'tu_usuario', 'tu_contraseña', 'tu_basededatos');
if (!$conn) {
die('Error: ' . mysqli_connect_error());
}
echo 'Conexión exitosa';
Accede a tudominio.com/test.php. Si ves "Conexión exitosa", el problema está en la configuración de PrestaShop. Si ves un error, el problema está en MySQL o en las credenciales.
[INFO] No olvides eliminar el archivo
test.phpdespués de la prueba, ya que supone un riesgo de seguridad.
11. Contacta con tu proveedor de hosting
Si estás en un hosting compartido, el soporte técnico puede ayudarte a verificar si hay algún bloqueo de IP, límite de conexiones o problema en el servidor. Muchas veces el error de conexión es temporal y el proveedor lo resuelve en minutos.
Preguntas frecuentes sobre el error mysql prestashop
¿Por qué mi tienda funcionaba y ahora da error de conexión?
Esto suele pasar después de un cambio en el servidor, una actualización de PrestaShop, un cambio de contraseña o una restauración de copia de seguridad. Revisa primero el archivo parameters.php.
¿Puedo evitar que esto vuelva a pasar?
Sí, te recomiendo:
- Guardar siempre una copia de seguridad actualizada del archivo
parameters.php. - Anotar las contraseñas de las bases de datos en un gestor de contraseñas.
- Realizar cambios en el servidor fuera de horas punta.
- Mantener PrestaShop y sus módulos actualizados.
¿El error puede deberse a un plugin o módulo?
Es poco probable, pero algunos módulos mal configurados pueden saturar la base de datos. Si el error aparece después de instalar un módulo, desactívalo temporalmente desde la base de datos (cambiando el valor de active a 0 en la tabla ps_module).
¿Cuánto tarda en solucionarse?
Si es un problema de credenciales, entre 2 y 5 minutos. Si es un problema del servidor, puede tardar más dependiendo de la causa. En cualquier caso, siguiendo esta guía podrás resolver la mayoría de los casos en menos de 30 minutos.
Resumen final
El error mysql prestashop es frustrante, pero casi siempre tiene solución. Recuerda el orden lógico:
- Verifica que MySQL esté activo.
- Revisa las credenciales en
parameters.php. - Comprueba permisos y host.
- Limpia la caché.
- Revisa los logs.
Si estás usando Syspanel, recuerda que el acceso es por el puerto 2106 y que desde su panel de bases de datos puedes gestionar usuarios, contraseñas y permisos de forma sencilla.
Con estos pasos, tu tienda volverá a estar operativa en poco tiempo. Y si te encuentras con un caso especialmente complicado, no dudes en buscar ayuda profesional o contactar con el soporte de tu hosting. ¡Buena suerte con tu tienda online!
