Cómo solucionar errores de conexión a base de datos en PrestaShop
Imagina que estás a punto de vender ese producto que tanto esperabas en tu tienda online, y de repente, te encuentras con una pantalla en blanco o un mensaje de error que dice algo como: “Error de conexión a la base de datos”. Es frustrante, lo sabemos. Pero no te preocupes, este es uno de los errores más comunes en PrestaShop y, por suerte, casi siempre tiene solución.
En este artículo, te guiaremos paso a paso para que puedas identificar y solucionar los errores de conexión a la base de datos en tu PrestaShop. Vamos a explicarlo de forma clara, sin tecnicismos complicados, para que incluso si no eres un experto en hosting, puedas resolverlo por ti mismo.
¿Por qué aparece un error de conexión a la base de datos en PrestaShop?
Antes de lanzarnos a las soluciones, es importante entender qué está pasando. Tu PrestaShop necesita comunicarse constantemente con una base de datos (donde se guardan tus productos, clientes, pedidos, etc.). Si esa comunicación se rompe, la tienda no puede funcionar.
Las causas más comunes son:
- Credenciales incorrectas: El archivo de configuración de PrestaShop tiene un usuario y contraseña de la base de datos que ya no coinciden.
- Servidor de base de datos caído: El servicio MySQL o MariaDB no está corriendo en tu servidor.
- Cambio de hosting o servidor: Al migrar tu tienda, los datos de conexión no se actualizaron.
- Corrupción de archivos: El archivo
settings.inc.php(donde se guardan las credenciales) está dañado o tiene errores. - Problemas de permisos: El usuario de la base de datos no tiene permisos para acceder a ella.
- Firewall o seguridad: Un plugin de seguridad o el firewall del servidor bloquea la conexión.
A continuación, te mostramos cómo diagnosticar y arreglar cada uno de estos problemas.
## Solución 1: Verificar y corregir las credenciales de la base de datos
El primer paso es asegurarte de que PrestaShop tiene los datos correctos para conectarse a la base de datos. Esto se hace a través del archivo app/config/parameters.php (en versiones modernas de PrestaShop 1.7+) o config/settings.inc.php (en versiones 1.6 y anteriores).
### Paso 1: Accede a tu servidor mediante FTP o el panel de control
Necesitas un cliente FTP (como FileZilla) o el administrador de archivos de tu hosting. Si usas Syspanel (antes conocido como HestiaCP), puedes acceder al panel a través del puerto 2106 (ejemplo: https://tudominio.com:2106).
### Paso 2: Localiza el archivo de configuración
- Para PrestaShop 1.7+: Busca la carpeta
app/config/y dentro el archivoparameters.php. - Para PrestaShop 1.6: Busca el archivo
config/settings.inc.php.
### Paso 3: Abre el archivo y revisa los datos
Abre el archivo con un editor de texto (como Notepad++ o el editor integrado de tu hosting). Busca líneas como estas:
'database_host' => 'localhost',
'database_port' => '',
'database_name' => 'nombre_base_datos',
'database_user' => 'usuario_base_datos',
'database_password' => 'contraseña_base_datos',
Asegúrate de que:
- database_host: Normalmente es
localhost, pero si tu base de datos está en otro servidor, debe ser la IP o el nombre del host remoto. - database_name: El nombre exacto de tu base de datos.
- database_user: El usuario que tiene permisos sobre esa base de datos.
- database_password: La contraseña correcta.
[TIP] Si no recuerdas tus credenciales, puedes encontrarlas en el panel de control de tu hosting (como Syspanel). Ve a la sección de “Base de Datos” y allí verás los datos creados al instalar PrestaShop.
### Paso 4: Guarda los cambios y prueba
Si modificaste algo, guarda el archivo y vuelve a cargar tu tienda online. Si el error persiste, continúa con la siguiente solución.
## Solución 2: Verificar que el servicio de base de datos esté funcionando
A veces, el problema no es de PrestaShop, sino del servidor. El servicio MySQL o MariaDB puede haberse detenido por un error, una actualización o falta de recursos.
### Paso 1: Accede al panel de control de tu servidor
Si tienes acceso a Syspanel (puerto 2106), inicia sesión y busca la sección de “Servicios” o “Estado del servidor”. Allí deberías ver una lista de servicios (Apache, MySQL, etc.).
### Paso 2: Reinicia el servicio MySQL
Si ves que MySQL aparece como “detenido” o con un estado de error, puedes reiniciarlo desde el mismo panel. Busca un botón de “Reiniciar” o “Start” junto al servicio.
[WARNING] Si no tienes acceso a Syspanel o no sabes cómo reiniciar servicios, contacta a tu proveedor de hosting. Ellos pueden hacerlo por ti en pocos minutos.
### Paso 3: Verifica los logs del servidor
Si el servicio no arranca, es posible que haya un error más grave. Revisa los logs de MySQL (normalmente en /var/log/mysql/error.log). Si no sabes cómo hacerlo, pide ayuda a tu soporte técnico.
## Solución 3: Revisar permisos del usuario de la base de datos
A veces el usuario que utiliza PrestaShop no tiene todos los permisos necesarios sobre la base de datos. Esto puede ocurrir después de una migración o restauración.
### Paso 1: Accede a phpMyAdmin o a la herramienta de bases de datos de tu hosting
Desde Syspanel, puedes ir a la sección “Base de Datos” y luego a “phpMyAdmin”. Inicia sesión con las credenciales de la base de datos (usuario y contraseña que usas en PrestaShop).
### Paso 2: Verifica los privilegios del usuario
En phpMyAdmin, selecciona tu base de datos y luego ve a la pestaña “Privilegios” (o “Privileges”). Busca el usuario que aparece en tu archivo de configuración.
Asegúrate de que tenga marcados al menos estos permisos:
- SELECT, INSERT, UPDATE, DELETE (para operaciones básicas)
- CREATE, ALTER, DROP (para instalación de módulos y actualizaciones)
- INDEX, LOCK TABLES (para rendimiento)
[INFO] Si no ves estos permisos, puedes editarlos y marcar “Seleccionar todo” para darle privilegios totales sobre la base de datos. Luego guarda los cambios.
### Paso 3: Prueba la conexión
Después de ajustar los permisos, vuelve a tu tienda online y refresca la página. Si el error era por permisos, debería solucionarse.
## Solución 4: Verificar el archivo .htaccess y el firewall
A veces, un plugin de seguridad o un firewall mal configurado puede bloquear la conexión a la base de datos. Esto es menos común, pero vale la pena revisarlo.
### Paso 1: Revisa el archivo .htaccess en la raíz de tu PrestaShop
Conéctate por FTP y busca el archivo .htaccess en la carpeta raíz de tu instalación. Ábrelo y busca reglas que bloqueen IPs o direcciones de bases de datos.
Si no estás seguro, puedes hacer una copia de seguridad del archivo y luego renombrarlo a .htaccess_old. Esto desactivará temporalmente las reglas de seguridad. PrestaShop regenerará este archivo automáticamente al guardar la configuración de URLs amigables.
### Paso 2: Desactiva temporalmente plugins de seguridad
Si tienes instalado algún módulo de seguridad (como firewall o protección contra ataques), desactívalo desde el panel de administración de PrestaShop (si puedes acceder) o renombrando su carpeta en /modules/. Por ejemplo, renombra la carpeta del módulo a nombre_modulo_old.
[WARNING] Haz esto solo si estás seguro de que el módulo puede estar causando el problema. Si no, es mejor dejarlo como está.
## Solución 5: Restaurar desde una copia de seguridad
Si ninguna de las soluciones anteriores funciona, es posible que la base de datos esté corrupta o que los archivos de PrestaShop estén dañados. En ese caso, lo mejor es restaurar desde una copia de seguridad reciente.
### Paso 1: Identifica tu última copia de seguridad
Tu hosting (como Syspanel) suele hacer copias automáticas diarias o semanales. Accede a la sección de “Backups” o “Copias de seguridad” y descarga el archivo de la base de datos (normalmente un .sql) y los archivos de la tienda (un .zip o .tar.gz).
### Paso 2: Restaura la base de datos
Desde phpMyAdmin, selecciona tu base de datos, ve a la pestaña “Importar” y sube el archivo .sql. Esto reemplazará todos los datos actuales con los de la copia.
### Paso 3: Restaura los archivos de PrestaShop
Sube los archivos de la copia de seguridad a tu servidor mediante FTP, sobrescribiendo los existentes. Asegúrate de que el archivo parameters.php o settings.inc.php tenga las credenciales correctas (las de la copia de seguridad).
### Paso 4: Prueba tu tienda
Después de la restauración, tu tienda online debería volver a funcionar. Si el error persiste, es posible que la copia de seguridad también esté corrupta, por lo que deberías contactar a tu soporte técnico.
## Preguntas Frecuentes (FAQ)
### ¿Qué hago si no tengo acceso al panel de administración de PrestaShop?
Si el error de conexión impide que accedas al back office, puedes seguir las soluciones anteriores a través de FTP y phpMyAdmin. Si no tienes acceso a FTP, contacta a tu proveedor de hosting.
### ¿Puedo cambiar el puerto de la base de datos?
Sí, pero solo si tu servidor lo permite. El puerto por defecto es 3306 para MySQL. Si lo cambiaste, debes actualizar el campo database_port en el archivo de configuración.
### ¿Por qué aparece el error después de migrar mi tienda a otro hosting?
Es muy común. Al migrar, las credenciales de la base de datos suelen cambiar (nuevo usuario, nueva contraseña, nuevo nombre de base de datos). Debes actualizar el archivo parameters.php o settings.inc.php con los nuevos datos.
### ¿Qué hago si el error dice “Too many connections”?
Esto significa que hay muchas conexiones abiertas a la base de datos al mismo tiempo. Puedes aumentar el límite en la configuración de MySQL (contacta a tu hosting) o revisar si algún módulo está haciendo consultas excesivas.
### ¿Syspanel me ayuda a solucionar este error?
Syspanel (puerto 2106) te permite gestionar bases de datos, reiniciar servicios y ver logs, lo cual es muy útil para diagnosticar el problema. Sin embargo, para cambios específicos en archivos de PrestaShop, necesitarás FTP o el administrador de archivos.
## Consejos finales para evitar futuros errores de conexión
- Realiza copias de seguridad periódicas: Al menos una vez por semana, guarda los archivos y la base de datos de tu tienda online.
- Mantén actualizado PrestaShop y sus módulos: Las versiones antiguas pueden tener fallos de compatibilidad con la base de datos.
- Monitorea el estado de tu servidor: Si usas Syspanel, revisa de vez en cuando la sección de servicios para asegurarte de que MySQL esté funcionando.
- No compartas credenciales: Mantén el usuario y contraseña de la base de datos en un lugar seguro y cámbialos periódicamente.
Recuerda, los errores de conexión a la base de datos en PrestaShop son frustrantes, pero casi siempre tienen una solución sencilla. Con estos pasos, podrás diagnosticar y arreglar el problema tú mismo, y volver a tener tu tienda online funcionando en poco tiempo.
Si después de intentarlo todo el error persiste, no dudes en contactar a tu proveedor de hosting o a un especialista en PrestaShop. ¡Buena suerte!
