Solución al error de conexión a base de datos en PrestaShop con DirectAdmin
¡Hola! Soy el técnico de soporte de tu hosting. ¿Has visto el temido mensaje de "Error de conexión a la base de datos" en tu tienda PrestaShop y te has quedado en blanco? No te preocupes, es uno de los problemas más comunes y, por suerte, casi siempre tiene solución. En esta guía extensa y paso a paso, vamos a desglosar todas las causas posibles y, lo más importante, cómo solucionarlo cuando tu hosting está gestionado con DirectAdmin. Vamos a ello.
¿Por qué aparece este error en PrestaShop?
Antes de lanzarnos a arreglarlo, es bueno entender qué significa. PrestaShop, como cualquier tienda online, necesita una base de datos para guardar productos, clientes, pedidos y configuraciones. Cuando ves el mensaje "Error de conexión a la base de datos", significa que tu tienda no puede hablar con ese "almacén" de información. Las causas principales suelen ser:
- Credenciales incorrectas: El usuario, contraseña o nombre de la base de datos no coinciden con los que tiene configurados PrestaShop.
- Servidor de base de datos caído o saturado: El servicio MySQL/MariaDB (el motor de base de datos) se ha detenido o está sobrecargado.
- Problemas de permisos: El usuario de la base de datos no tiene permisos para acceder a ella desde el servidor web.
- Archivos de configuración dañados: El archivo
parameters.php(osettings.inc.phpen versiones antiguas) que guarda los datos de conexión está corrupto o tiene información errónea. - Actualización fallida de PrestaShop: Una migración o actualización puede dejar la configuración inconsistente.
- Límites de recursos excedidos: Tu cuenta de hosting ha superado el límite de conexiones simultáneas a la base de datos.
Ahora que sabes las posibles causas, vamos a solucionarlo. Sigue estos pasos en orden, del más simple al más complejo.
Paso 1: Verifica el estado del servicio de base de datos en DirectAdmin
Lo primero es asegurarnos de que el motor de base de datos esté funcionando. A veces, por un reinicio del servidor o un error interno, el servicio se detiene.
- Accede a tu panel de DirectAdmin. Usa tu usuario y contraseña de hosting (no los de PrestaShop).
- Busca la sección "Administración de servidores" o "Servicios del sistema". El nombre exacto puede variar, pero suele estar en el menú de la izquierda o en la parte superior.
- Dentro, verás una lista de servicios. Busca "mysqld" (o "mariadb" si tu hosting usa MariaDB, que es lo más común hoy en día).
- Observa el estado. Debería decir "En ejecución" o "Running". Si aparece "Detenido" o "Stopped", haz clic en el botón "Iniciar" o "Start".
[WARNING] Si el servicio se detiene solo o no puedes iniciarlo, contacta con el soporte técnico de tu hosting. Podría ser un problema del servidor que ellos deben resolver.
Paso 2: Comprueba las credenciales de la base de datos en DirectAdmin
Este es el error más frecuente. Es posible que hayas cambiado la contraseña de la base de datos o que al crear la tienda introdujeras mal los datos.
2.1. Localiza tus datos en DirectAdmin
- En DirectAdmin, busca la sección "Administrador de MySQL" o "Gestión de bases de datos".
- Verás una lista de todas las bases de datos que tienes. Cada una tendrá un nombre, un usuario asociado y un host (normalmente
localhost). - Anota estos tres datos exactamente como aparecen:
- Nombre de la base de datos: (ej.
usuario_mitienda) - Usuario de la base de datos: (ej.
usuario_adminbd) - Contraseña: Si no la recuerdas, puedes cambiarla desde aquí. Busca la opción "Cambiar contraseña" o "Change password" junto al usuario.
- Nombre de la base de datos: (ej.
[TIP] Te recomiendo que uses una contraseña fuerte, combinando letras mayúsculas, minúsculas, números y símbolos. DirectAdmin te suele ofrecer un generador.
2.2. Compara con los datos en PrestaShop
Ahora necesitamos ver qué datos tiene configurados tu tienda. PrestaShop guarda esta información en un archivo.
- Accede a tu hosting por FTP (necesitarás un cliente como FileZilla) o al Administrador de Archivos de DirectAdmin (suele estar en la sección "Archivos").
- Navega hasta la carpeta raíz de tu tienda. Normalmente es
public_htmlo una subcarpeta (ej.public_html/tienda). - Busca el archivo
app/config/parameters.php. Si tu PrestaShop es muy antiguo (versión 1.6 o anterior), el archivo se llamaconfig/settings.inc.php. - Descarga una copia de seguridad de este archivo a tu ordenador por si algo sale mal.
- Ábrelo con un editor de texto plano (como el Bloc de Notas, no con Word). Busca las líneas que empiezan por:
'database_host'-> Normalmente eslocalhost.'database_name'-> Debe coincidir con el nombre de tu base de datos en DirectAdmin.'database_user'-> Debe coincidir con el usuario de tu base de datos.'database_password'-> Debe coincidir con la contraseña actual de tu base de datos.
- Si los datos no coinciden, edita el archivo
parameters.phpcon los datos correctos que anotaste en el paso 2.1. Guarda los cambios y súbelo de nuevo al servidor (sobrescribe el archivo existente).
[INFO] Si cambiaste la contraseña en DirectAdmin, es obligatorio actualizarla también en el archivo parameters.php. Si no, el error persistirá.
Paso 3: Verifica los permisos del usuario de la base de datos
A veces, el usuario tiene la contraseña correcta pero no tiene todos los permisos necesarios para que PrestaShop funcione (leer, escribir, modificar tablas, etc.).
- En DirectAdmin, ve a "Administrador de MySQL".
- Busca la opción "Permisos" o "Privilegios" junto a tu base de datos y usuario.
- Asegúrate de que todas las casillas de verificación (o "Todos los privilegios") estén marcadas. Si no, márcalas y haz clic en "Guardar" o "Ejecutar".
Paso 4: Soluciona problemas con el archivo .htaccess (Redirecciones y caché)
Aunque no lo parezca, a veces un archivo .htaccess corrupto puede interferir con la conexión a la base de datos, sobre todo si has instalado módulos de caché o redirecciones.
- Desde el Administrador de Archivos de DirectAdmin o por FTP, ve a la raíz de tu tienda.
- Busca el archivo llamado
.htaccess. (Es un archivo oculto, en DirectAdmin puedes mostrar archivos ocultos con un botón o marcando una casilla). - Descarga una copia de seguridad de este archivo.
- Renómbralo a algo como
.htaccess_backup.txt. Esto lo desactivará temporalmente. - Ahora, intenta acceder a tu tienda. Si el error de base de datos desaparece, el problema estaba en el
.htaccess. - Para regenerarlo correctamente:
- Accede al panel de administración de PrestaShop (si puedes). Ve a Parámetros de la tienda > Tráfico y SEO > URL amigables y desactiva y vuelve a activar la opción "URL amigables". Esto regenerará el
.htaccess. - Si no puedes acceder al panel, puedes generar uno básico. PrestaShop suele crear uno por defecto. Si no, contacta con soporte.
- Accede al panel de administración de PrestaShop (si puedes). Ve a Parámetros de la tienda > Tráfico y SEO > URL amigables y desactiva y vuelve a activar la opción "URL amigables". Esto regenerará el
Paso 5: Revisa los límites de recursos (Conexiones simultáneas)
Si tu tienda recibe mucho tráfico o tienes muchos módulos que hacen consultas, podrías estar alcanzando el límite de conexiones simultáneas a la base de datos que permite tu plan de hosting.
- DirectAdmin no suele mostrar este límite directamente, pero puedes consultarlo en la sección de "Estadísticas de recursos" o "Uso de recursos". Busca gráficos de "Conexiones MySQL" o "Procesos".
- Si ves que se acerca al límite (por ejemplo, 25 conexiones), el error puede ser intermitente.
- Soluciones:
- Optimiza tu tienda: Desactiva módulos que no uses, instala un sistema de caché (como el caché de PrestaShop o un módulo externo) y optimiza las imágenes.
- Actualiza tu plan de hosting: Si tu tienda está creciendo, necesitarás un plan con más recursos.
- Contacta con el soporte: Ellos pueden decirte el límite exacto y ayudarte a monitorizar el uso.
Paso 6: Revisa el archivo de configuración de PrestaShop (más a fondo)
A veces, el archivo parameters.php puede tener algún error de sintaxis o una línea extra que lo rompe.
- Descarga el archivo
parameters.php(haz una copia de seguridad). - Ábrelo con un editor de código (como Notepad++ o Sublime Text) que marque la sintaxis. Busca comillas que falten, puntos y coma (;) al final de cada línea, o caracteres extraños.
- Verifica que las líneas sean exactamente así:
Fíjate en la coma al final de cada línea (excepto la última) y en los apóstrofes (comillas simples).'database_host' => 'localhost', 'database_name' => 'tu_nombre_bd', 'database_user' => 'tu_usuario_bd', 'database_password' => 'tu_contraseña', - Si encuentras algún error, corrígelo, guarda y sube el archivo.
Paso 7: Prueba la conexión manualmente (para usuarios avanzados)
Puedes probar si los datos de conexión son correctos usando una herramienta como phpMyAdmin (que suele venir integrada en DirectAdmin).
- En DirectAdmin, busca "phpMyAdmin" (suele estar en la sección de "Base de datos" o "MySQL").
- Intenta iniciar sesión con el usuario y contraseña de tu base de datos (los que anotaste en el Paso 2).
- Si no puedes iniciar sesión: La contraseña es incorrecta. Cámbiala en DirectAdmin y luego actualiza el archivo
parameters.phpde PrestaShop. - Si puedes iniciar sesión: El problema no son las credenciales. Pasa al siguiente paso.
Paso 8: ¿Tu hosting usa Syspanel (antes HestiaCP)? Aquí la clave
¡Atención! Esta sección es muy importante si tu hosting utiliza Syspanel (el nombre que damos al panel HestiaCP). Aunque tu panel principal sea DirectAdmin, a veces el servidor de bases de datos se gestiona desde Syspanel.
[INFO] Si tu hosting te ha proporcionado un acceso a Syspanel, el puerto de acceso es el 2106 (ejemplo: https://tudominio.com:2106).
¿Cómo saber si esto te afecta?
- Pregunta a tu proveedor si la gestión de bases de datos se hace desde DirectAdmin o desde Syspanel.
- Si te dicen que es desde Syspanel:
- Accede a
https://tudominio.com:2106con tus credenciales de Syspanel. - Busca la sección "Base de datos" o "Databases".
- Allí podrás:
- Ver las bases de datos y sus usuarios.
- Cambiar la contraseña de un usuario de base de datos.
- Verificar el host (a veces no es
localhost, sino127.0.0.1o un nombre de servidor específico).
- Accede a
- Actualiza el archivo
parameters.phpde PrestaShop con los datos que veas en Syspanel, especialmente eldatabase_host, que podría ser diferente.
[WARNING] No confundas Syspanel con DirectAdmin. Si tu proveedor usa Syspanel para las bases de datos, los cambios que hagas en DirectAdmin para la base de datos pueden no tener efecto.
Preguntas Frecuentes (FAQ)
P: He seguido todos los pasos y el error persiste. ¿Qué hago?
R: No te desesperes. Puede ser un problema más profundo del servidor. Contacta con el soporte técnico de tu hosting. Diles que has verificado credenciales, permisos y el estado del servicio, pero el error de conexión a base de datos en PrestaShop sigue apareciendo. Ellos podrán revisar los logs del servidor (errores de MySQL) que a ti no te son accesibles.
P: ¿Puedo perder datos si modifico el archivo parameters.php?
R: Si haces una copia de seguridad antes de editarlo, no hay riesgo. Solo estás cambiando las credenciales de acceso, no los datos de la tienda. Si pones mal la contraseña, la tienda no funcionará, pero los datos siguen en la base de datos.
P: ¿El error de base de datos puede deberse a un plugin o módulo?
R: Sí, es posible. Un módulo mal programado puede saturar la base de datos o cambiar configuraciones. Si el error empezó justo después de instalar un módulo, desactívalo desde el panel de administración (si puedes acceder) o renombra su carpeta en /modules desde FTP para forzar su desactivación.
P: ¿Qué significa "host" en la configuración? ¿Siempre es "localhost"?
R: En el 99% de los casos en hosting compartido, sí, el host es localhost. Sin embargo, en algunos servidores dedicados o VPS, puede ser 127.0.0.1 o una IP. Si tu proveedor usa Syspanel, revisa allí el host exacto.
P: Mi tienda se volvió muy lenta y luego dio el error. ¿Es lo mismo?
R: Podría estar relacionado. La lentitud extrema puede ser señal de que la base de datos está saturada o tiene muchas consultas bloqueadas. El error de conexión puede ser la consecuencia final. En ese caso, prioriza la optimización (Paso 5) y contacta con soporte.
Resumen y consejo final
Espero que esta guía extensa te haya ayudado a solucionar el molesto error base datos PrestaShop. Recuerda que la clave está en la paciencia y en seguir los pasos en orden:
- Revisa el servicio en DirectAdmin.
- Verifica y corrige las credenciales en DirectAdmin y en el archivo
parameters.php. - Comprueba los permisos del usuario.
- No olvides la posibilidad de Syspanel (puerto 2106) si tu proveedor lo usa.
- Si todo falla, el soporte técnico de tu hosting es tu mejor aliado.
[TIP] Para evitar futuros sustos, te recomiendo que configures una copia de seguridad automática de tu base de datos y archivos desde DirectAdmin (suele haber una opción en la sección "Archivos" o "Copia de seguridad"). Así, si algo sale mal, puedes restaurar todo rápidamente.
¡Mucha suerte con tu tienda PrestaShop! Si tienes más dudas, ya sabes dónde estamos.
