PrestaShop: cómo solucionar errores de conexión a la base de datos
¡Hola! Soy tu técnico de soporte amigable. 😊
Si estás aquí es porque tu tienda PrestaShop te ha mostrado uno de esos mensajes de error que hielan la sangre: "Error de conexión a la base de datos" o "No se puede conectar con la base de datos". No te preocupes, es uno de los problemas más comunes y, en la mayoría de los casos, tiene una solución sencilla.
En este artículo, te guiaré paso a paso para diagnosticar y solucionar errores PrestaShop relacionados con la base de datos. Lo haremos desde un enfoque de SysAdmin PrestaShop, pero explicado como si estuviéramos tomando un café. No necesitas ser un experto, solo seguir las instrucciones con calma.
Empecemos por lo básico: ¿qué significa exactamente este error? Tu tienda PrestaShop guarda toda su información (productos, clientes, pedidos, configuraciones) en una base de datos. Cuando falla la conexión, la tienda no puede leer ni escribir datos, y por eso se muestra en blanco o con un mensaje de error.
¿Por qué ocurre el error de conexión a la base de datos en PrestaShop?
Las causas más frecuentes son:
- Credenciales incorrectas en el archivo de configuración.
- El servidor de base de datos está caído o no responde.
- El usuario de la base de datos no tiene permisos suficientes.
- Problemas de red o firewall bloqueando el puerto (por defecto, 3306 para MySQL/MariaDB).
- Archivos de configuración corruptos o mal editados.
- El servidor se quedó sin espacio en disco o memoria.
- Actualizaciones fallidas de PrestaShop o del sistema.
Vamos a revisar cada una de estas posibilidades, una por una.
Paso 1: Verifica el estado del servidor y los servicios
Antes de tocar nada, asegúrate de que el servidor donde está alojada tu tienda esté funcionando correctamente.
1.1. Accede a tu panel de control (Syspanel)
Si usas Syspanel (anteriormente conocido como HestiaCP), accede a través de tu navegador escribiendo:
https://tu-dominio.com:2106
[TIP] Syspanel es una herramienta de administración de hosting muy visual. El puerto 2106 es el predeterminado para acceder a su interfaz web.
Una vez dentro, busca la sección de Servicios o Estado del sistema. Deberías ver algo como:
- MySQL/MariaDB: debe aparecer como "en ejecución" o "running".
- Apache/Nginx: también debe estar activo.
- PHP: funcionando.
Si alguno está detenido, puedes reiniciarlo desde el mismo panel. Normalmente hay un botón verde de "Iniciar" o "Reiniciar".
1.2. Comprueba el espacio en disco
Un disco lleno puede impedir que los servicios de base de datos arranquen. En Syspanel, ve a Estadísticas o Recursos. Si ves que el disco está al 100%, libera espacio eliminando logs antiguos, copias de seguridad viejas o archivos temporales.
Paso 2: Revisa el archivo de configuración de PrestaShop
El archivo clave es app/config/parameters.php (en PrestaShop 1.7 y 8.x) o config/settings.inc.php (en versiones 1.6 y anteriores). Aquí se guardan los datos de conexión a la base de datos.
2.1. Accede al archivo
Puedes hacerlo desde el Administrador de archivos de Syspanel o mediante FTP/SFTP. La ruta típica es:
/public_html/app/config/parameters.php
2.2. Verifica las credenciales
Abre el archivo con un editor de texto (como el bloc de notas o el editor integrado en Syspanel). Busca estas líneas:
'database_host' => 'localhost',
'database_port' => '3306',
'database_name' => 'tu_basededatos',
'database_user' => 'tu_usuario',
'database_password' => 'tu_contraseña',
[WARNING] Asegúrate de que el host no sea
localhostsi tu base de datos está en un servidor remoto. En ese caso, pon la IP o el nombre del servidor.
Si no recuerdas las credenciales, puedes obtenerlas desde Syspanel:
- Ve a Base de datos en el menú lateral.
- Busca la base de datos asociada a tu tienda (suele tener el mismo nombre que el dominio).
- Haz clic en "Editar" o en el icono de lápiz para ver el usuario y la contraseña.
Si los datos del archivo no coinciden, corrígelos y guarda los cambios.
Paso 3: Prueba la conexión manualmente desde la línea de comandos
Si tienes acceso SSH (Shell), esta es la forma más directa de verificar si el problema es de conexión o de configuración.
3.1. Conéctate por SSH
Usa un cliente como PuTTY (Windows) o la terminal (Mac/Linux). Tus datos de acceso SSH los encuentras en Syspanel, en la sección Usuarios o Acceso SSH.
3.2. Ejecuta el comando de prueba
Una vez dentro, escribe:
mysql -u tu_usuario -p -h localhost -P 3306
Te pedirá la contraseña. Si la conexión es exitosa, verás el prompt de MySQL (mysql>). Si falla, te mostrará un mensaje de error como:
ERROR 1045 (28000): Access denied for user→ Contraseña o usuario incorrectos.ERROR 2002 (HY000): Can't connect to local MySQL server→ El servicio MySQL no está corriendo.ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost'→ Problema de red o firewall.
Si la conexión falla, pero desde el panel de Syspanel ves que MySQL está activo, entonces el problema puede ser que el usuario no tenga permisos para conectarse desde localhost. En ese caso, desde el mismo MySQL (si puedes acceder como root) ejecuta:
GRANT ALL PRIVILEGES ON tu_basededatos.* TO 'tu_usuario'@'localhost' IDENTIFIED BY 'tu_contraseña';
FLUSH PRIVILEGES;
[INFO] Si no tienes acceso root, pide a tu proveedor de hosting que verifique los permisos del usuario.
Paso 4: Verifica el archivo .htaccess y los enlaces simbólicos
A veces el error de base de datos es un falso positivo. PrestaShop puede mostrar ese mensaje si hay problemas con los archivos de configuración de Apache.
4.1. Comprueba el .htaccess
En la raíz de tu tienda (normalmente /public_html), busca el archivo .htaccess. Si no existe, puedes generarlo desde el panel de administración de PrestaShop: ve a Parámetros de la tienda > Tráfico y SEO > URL amigables y haz clic en "Guardar" (aunque no hayas cambiado nada). Esto regenera el archivo.
4.2. Revisa los enlaces simbólicos
En algunos entornos, la carpeta app o config puede ser un enlace simbólico. Si se rompe, PrestaShop no encuentra los archivos de configuración. Usa SSH y ejecuta:
ls -la /public_html/app/config/parameters.php
Si ves una flecha (->) que apunta a una ruta que no existe, tendrás que recrear el enlace.
Paso 5: Reinicia servicios desde Syspanel
A veces, con un simple reinicio de servicios se soluciona todo. Desde Syspanel:
- Ve a Servicios.
- Busca MySQL (o MariaDB).
- Haz clic en Reiniciar.
- Haz lo mismo con Apache o Nginx.
[TIP] Si no ves la opción de reiniciar, puede que tu plan de hosting no permita cambios en los servicios. Contacta con soporte.
Paso 6: Revisa los logs de errores
Los logs son tus mejores amigos para diagnosticar problemas.
6.1. Log de MySQL
En Syspanel, busca Registros o Logs. Normalmente hay un log de MySQL llamado mysql-error.log. Ábrelo y busca errores recientes. Si ves algo como:
[ERROR] InnoDB: Unable to lock ./ibdata1, error: 11
Significa que el archivo de datos está bloqueado. Esto suele resolverse reiniciando el servicio.
6.2. Log de PHP
También revisa el log de errores de PHP. En Syspanel, suele estar en /var/log/php-error.log o similar. Busca líneas con PDO o mysqli, que indican fallos de conexión.
Paso 7: Restaura la base de datos desde una copia de seguridad
Si después de todo lo anterior el error persiste, puede que la base de datos esté corrupta. En ese caso, la solución es restaurar una copia de seguridad reciente.
7.1. Localiza la copia de seguridad
Syspanel suele hacer copias automáticas diarias. Ve a Copia de seguridad y descarga la más reciente de tu base de datos (archivo .sql o .gz).
7.2. Restaura desde Syspanel
En la sección Base de datos, selecciona la base de datos de tu tienda y haz clic en Restaurar. Sube el archivo de la copia.
7.3. Restaura desde SSH (alternativa)
Si prefieres la línea de comandos:
mysql -u tu_usuario -p tu_basededatos < /ruta/de/la/copia.sql
[WARNING] Asegúrate de que la copia de seguridad sea reciente. Si restauras una muy antigua, perderás pedidos y clientes nuevos.
Paso 8: Aumenta los límites de recursos del servidor
A veces el error aparece porque el servidor se queda sin memoria o sin conexiones disponibles para MySQL.
8.1. Desde Syspanel
Ve a Configuración del servidor o Ajustes avanzados. Busca opciones como max_connections o innodb_buffer_pool_size. Si no sabes qué valores poner, pide ayuda a tu proveedor.
8.2. Desde SSH (si tienes acceso root)
Edita el archivo de configuración de MySQL (normalmente /etc/mysql/my.cnf o /etc/my.cnf) y aumenta:
max_connections = 200
innodb_buffer_pool_size = 1G
Luego reinicia MySQL.
Preguntas frecuentes (FAQ)
❓ ¿Qué hago si no recuerdo la contraseña de la base de datos?
En Syspanel, ve a Base de datos, selecciona la base de datos y haz clic en "Editar". Allí puedes generar una nueva contraseña. Luego actualiza el archivo parameters.php con esa nueva contraseña.
❓ ¿Puedo cambiar el puerto de MySQL?
Sí, pero no es recomendable a menos que sepas lo que haces. Si lo cambias, actualiza también database_port en parameters.php.
❓ ¿Por qué veo el error después de una actualización de PrestaShop?
Las actualizaciones pueden cambiar la estructura de la base de datos. Si la conexión falla después de actualizar, prueba a regenerar el archivo .htaccess y a limpiar la caché desde el panel de administración (si puedes acceder). Si no, borra manualmente la carpeta /var/cache (en PrestaShop 1.7) o /cache (en 1.6).
❓ ¿El error puede deberse a un plugin o módulo?
Sí. Algunos módulos mal programados pueden saturar la base de datos o cambiar la configuración. Si el error aparece después de instalar un módulo, desactívalo desde la base de datos (cambiando el campo active a 0 en la tabla ps_module) o elimínalo manualmente.
❓ ¿Cómo sé si el problema es de red?
Si desde SSH no puedes hacer ping al servidor de base de datos (por ejemplo, ping 127.0.0.1 si es local), entonces el problema es de red. Revisa las reglas del firewall o contacta a tu proveedor de hosting.
Resumen final
Para solucionar errores PrestaShop de conexión base de datos PrestaShop, sigue este orden:
- Verifica que MySQL esté activo en Syspanel.
- Comprueba las credenciales en
parameters.php. - Prueba la conexión manual con SSH.
- Reinicia servicios.
- Revisa logs.
- Restaura una copia de seguridad si todo falla.
[TIP] La mayoría de los errores se solucionan en los pasos 1 y 2. No te asustes si ves muchos tecnicismos; con práctica, esto se vuelve rutina.
Si después de seguir todos estos pasos el error persiste, contacta con tu proveedor de hosting. Ellos tienen acceso a nivel de servidor y pueden detectar problemas que nosotros no vemos desde el panel.
Espero que este artículo te haya sido de ayuda. Recuerda que la paciencia y el método son clave en la administración de sistemas. ¡Tu tienda volverá a funcionar en poco tiempo! 🚀
