Cómo resolver el error de conexión a la base de datos en PrestaShop (DirectAdmin)
¿Qué significa el error de conexión a la base de datos en PrestaShop?
Cuando visitas tu tienda online y te aparece un mensaje similar a "Error de conexión a la base de datos", "Link to database cannot be established" o "PrestaShop could not connect to the database", el primer pensamiento suele ser catastrófico. Pero respira, porque en el 90% de los casos tiene solución sin perder datos.
Este error es mucho más común de lo que parece, especialmente en entornos de hosting compartido o VPS con panel DirectAdmin. El mensaje aparece cuando PrestaShop intenta comunicarse con MySQL o MariaDB y no lo consigue. Las causas pueden ser desde una contraseña mal escrita, un servicio caído, hasta un archivo de configuración con datos incorrectos.
En esta guía te voy a explicar paso a paso, con un lenguaje claro y para principiantes, cómo diagnosticar y arreglar el error de conexión a la base de datos en PrestaShop cuando tu hosting usa DirectAdmin. No necesitas ser un experto, solo seguir el orden de los pasos.
¿Por qué ocurre el error de conexión a base de datos en PrestaShop?
Antes de ponernos manos a la obra, es importante que entiendas qué está pasando. PrestaShop guarda toda su información (productos, pedidos, clientes, contraseñas) en una base de datos. Para acceder a ella, usa un archivo llamado parameters.php que contiene los datos de conexión: servidor, nombre de base de datos, usuario y contraseña.
Si alguno de esos datos es incorrecto, o si el servicio de base de datos no está activo, PrestaShop no puede conectarse y te muestra el error.
Las causas más habituales son:
- Cambio de contraseña de la base de datos desde DirectAdmin sin actualizar PrestaShop.
- El servicio MySQL/MariaDB está detenido o reiniciándose.
- El archivo
parameters.phptiene datos corruptos o mal configurados. - La base de datos fue eliminada o importada con otro nombre.
- El usuario de la base de datos perdió permisos.
- Problemas con el archivo
settings.inc.php(en versiones antiguas). - La IP del servidor bloqueada o el puerto incorrecto.
- Espacio en disco lleno, lo que impide que MySQL funcione.
Ahora sí, vamos a resolverlo.
Paso 1: Comprueba si el servicio MySQL/MariaDB está activo
El primer paso es el más básico y muchas veces el que soluciona todo. Si el servicio de base de datos está caído, no importa cuántas veces cambies contraseñas, el error seguirá ahí.
En DirectAdmin:
- Accede a tu panel de DirectAdmin.
- Busca la sección "System Info" o "Server Information".
- Localiza el estado de MySQL o MariaDB. Debe aparecer como "Running" o "Active".
Si no aparece como activo, necesitas reiniciarlo. Si tu plan es de hosting compartido, no podrás hacerlo tú mismo. En ese caso, contacta con tu proveedor de hosting y pídeles que reinicien el servicio MySQL.
[TIP]: Si tienes un VPS con acceso SSH, puedes reiniciar el servicio con el comando service mysql restart o systemctl restart mariadb. Pero si no sabes qué es SSH, mejor no lo intentes y llama al soporte.
Paso 2: Localiza y revisa el archivo parameters.php
Este es el archivo clave. PrestaShop lo usa para conectarse a la base de datos. Si algo está mal aquí, ahí tienes tu error.
¿Dónde está?
El archivo se encuentra en la carpeta raíz de tu tienda, dentro de app/config/parameters.php. La ruta completa suele ser:
/public_html/app/config/parameters.php
¿Cómo lo abro?
Puedes usar el Administrador de archivos de DirectAdmin o un cliente FTP como FileZilla. Una vez localizado, haz clic derecho y selecciona "Editar" o descárgalo y ábrelo con el Bloc de notas.
¿Qué debo buscar?
Dentro del archivo verás varias líneas. Las importantes son:
database_host(normalmentelocalhosto127.0.0.1)database_namedatabase_userdatabase_password
Comprueba que estos datos coincidan exactamente con los que tienes en DirectAdmin.
[WARNING]: No compartas nunca estos datos en foros públicos ni con terceros. Son las llaves de tu tienda.
Paso 3: Verifica los datos de la base de datos en DirectAdmin
Ahora vamos a comparar. En tu panel de DirectAdmin, busca la sección "MySQL Management" o "Base de datos MySQL".
Allí verás:
- El nombre de la base de datos (suele tener un prefijo, por ejemplo
usuario_tienda) - El nombre de usuario (puede ser igual o distinto al de la base)
- La contraseña (no la verás, pero puedes cambiarla)
Si los datos de parameters.php no coinciden con los de DirectAdmin, tienes dos opciones:
- Corregir el archivo
parameters.phpcon los datos correctos. - Cambiar la contraseña en DirectAdmin para que coincida con la que tienes en el archivo.
Recomiendo la opción 1, porque cambiar la contraseña desde DirectAdmin puede dejar otras aplicaciones (como un foro o un blog) sin conexión.
¿Cómo editar el archivo?
- Abre
parameters.phpen el editor. - Busca la línea
'database_password' => 'tu_contraseña_actual'. - Cámbiala por la contraseña correcta de DirectAdmin.
- Guarda el archivo y súbelo al servidor si lo habías descargado.
[INFO]: Si no recuerdas la contraseña de la base de datos, desde DirectAdmin puedes cambiarla. Ve a MySQL Management, selecciona la base, y usa la opción "Change Password". Luego actualiza parameters.php con esa nueva contraseña.
Paso 4: Revisa si el archivo settings.inc.php existe (solo versiones antiguas)
Si tu PrestaShop es anterior a la versión 1.7, el archivo clave es config/settings.inc.php. En versiones nuevas ya no se usa, pero por si acaso, verifica si existe en tu instalación.
La ruta sería:
/public_html/config/settings.inc.php
Si existe, repite el mismo proceso de verificación que con parameters.php. Los campos son similares: DB_NAME, DB_USER, DB_PASSWD, DB_SERVER.
[WARNING]: Si tienes PrestaShop 1.7 o superior, este archivo no debe existir. Si lo encuentras, no lo borres sin más, porque puede romper algo. Lo mejor es renombrarlo a settings.inc.php.bak para desactivarlo.
Paso 5: Prueba la conexión manualmente
Una forma muy fiable de saber si el problema es de credenciales o de servicio es intentar conectar a la base de datos desde fuera de PrestaShop.
Puedes crear un archivo PHP de prueba en la raíz de tu tienda con este contenido:
<?php
$conn = new mysqli('localhost', 'tu_usuario', 'tu_contraseña', 'tu_base_datos');
if ($conn->connect_error) {
die("Error de conexión: " . $conn->connect_error);
}
echo "Conexión exitosa";
$conn->close();
?>
Guarda el archivo como test_db.php y súbelo a /public_html/. Luego accede desde tu navegador a tudominio.com/test_db.php.
- Si ves "Conexión exitosa", el problema está en PrestaShop, no en la base de datos.
- Si ves un error de acceso denegado, la contraseña o el usuario son incorrectos.
- Si ves un error de "host no encontrado", el servicio está caído.
No olvides borrar este archivo de prueba una vez termines, por seguridad.
Paso 6: Revisa los permisos del usuario de la base de datos
A veces los datos son correctos, pero el usuario no tiene permisos suficientes. En DirectAdmin, dentro de MySQL Management, puedes ver qué bases de datos tiene asignadas cada usuario.
Asegúrate de que el usuario que usa PrestaShop tenga permisos de tipo ALL PRIVILEGES sobre la base de datos de tu tienda.
Si no los tiene, puedes usar la opción de "Assign User to Database" o "Change Privileges" en DirectAdmin.
[TIP]: Si tu hosting usa Syspanel (antes conocido como HestiaCP), el acceso es por el puerto 2106. Ahí la gestión de bases de datos es similar a DirectAdmin, pero con nombres de sección diferentes. Busca "Bases de datos" o "MySQL".
Paso 7: Verifica el espacio en disco y la cuota de la base
Un problema poco conocido es que si el disco está lleno, MySQL se detiene o no permite nuevas conexiones. Esto ocurre especialmente en hosting compartido.
Para comprobarlo:
- En DirectAdmin, ve a "Account Manager".
- Revisa el uso de espacio en disco.
- Si estás al 100%, borra archivos temporales, cachés o copias de seguridad antiguas.
También puedes revisar el tamaño de la base de datos. Si supera el límite de tu plan, el servidor puede bloquearla.
Paso 8: Reconstruir el archivo parameters.php
Si has intentado todo y nada funciona, puede que el archivo esté corrupto. La solución es reconstruirlo.
Puedes crear un parameters.php nuevo con los datos correctos. Aquí tienes una plantilla básica:
<?php
return [
'parameters' => [
'database_host' => 'localhost',
'database_name' => 'tu_base',
'database_user' => 'tu_usuario',
'database_password' => 'tu_contraseña',
'database_prefix' => 'ps_',
// ... resto de parámetros que tenías
],
];
?>
Pero ojo: este archivo tiene muchos más parámetros. Si no estás seguro, es mejor que uses el archivo de respaldo que tienes en /app/config/ o que contactes con soporte.
[WARNING]: No borres el archivo original sin hacer una copia de seguridad. Guarda una copia como parameters.php.bak.
Paso 9: Revisa el archivo .htaccess (casos raros)
A veces el error de conexión a la base de datos en PrestaShop puede estar relacionado con reglas de redirección o bloqueos en .htaccess. No es lo más común, pero si has probado todo, vale la pena mirarlo.
Renombra temporalmente el archivo .htaccess de la raíz a .htaccess.bak y prueba de nuevo. Si funciona, el problema es de ese archivo. Luego puedes regenerarlo desde el panel de administración de PrestaShop (si accedes) o restaurar una copia.
Paso 10: Restaura una copia de seguridad de la base de datos
Si la base de datos está dañada o fue modificada incorrectamente, puedes restaurarla desde una copia reciente.
En DirectAdmin:
- Ve a "MySQL Management".
- Busca la opción de "Backup" o "Restore".
- Sube un archivo
.sqlque tengas guardado.
Si no tienes copia, revisa si tu hosting hace backups automáticos. Algunos paneles los guardan en /home/usuario/backups/.
[INFO]: Esta operación debe hacerse con cuidado. Si restauras una copia muy antigua, perderás pedidos o productos recientes. Mejor intenta primero todos los pasos anteriores.
Paso 11: Contacta con el soporte de tu hosting
Si después de todos estos pasos el error de conexión a la base de datos en PrestaShop continúa, es hora de pedir ayuda profesional.
Explica claramente qué has hecho:
- Has verificado el servicio MySQL.
- Has comprobado las credenciales.
- Has revisado el archivo
parameters.php. - Has probado la conexión manual.
El soporte técnico de tu hosting podrá revisar los logs del servidor y ver si hay algo bloqueando la conexión.
Preguntas frecuentes (FAQ)
¿Puedo perder mis datos si cambio la contraseña de la base de datos?
No, cambiar la contraseña no borra datos. Solo actualiza la clave de acceso. Eso sí, debes actualizar también el archivo parameters.php o la tienda no podrá conectarse.
¿Qué hago si no tengo acceso a DirectAdmin?
Si no tienes acceso al panel, contacta con tu proveedor de hosting. Ellos pueden hacer los cambios por ti, pero deberás proporcionarles los datos de tu tienda y explicarles el problema.
¿El error de conexión a la base de datos afecta a mi posicionamiento SEO?
Sí, indirectamente. Si tu tienda está caída durante mucho tiempo, los motores de búsqueda pueden penalizarte. Por eso es importante solucionarlo rápido. Si necesitas ayuda con el SEO después de restaurar tu tienda, hay herramientas y guías específicas para recuperar posiciones.
¿Puedo evitar este error en el futuro?
Sí, con estas buenas prácticas:
- Cambia la contraseña de la base de datos solo cuando sea necesario.
- Haz copias de seguridad periódicas.
- Mantén PrestaShop actualizado.
- No edites archivos de configuración sin saber qué haces.
- Si usas Syspanel (HestiaCP), recuerda que el puerto de acceso es el 2106 y la gestión de bases de datos es similar a DirectAdmin.
Conclusión
El error de conexión a la base de datos en PrestaShop en un entorno DirectAdmin tiene solución. La clave es ir paso a paso, sin saltarte ninguno. La mayoría de las veces se debe a un simple cambio de contraseña no actualizado en el archivo parameters.php.
Recuerda el orden lógico:
- Verifica que MySQL esté activo.
- Revisa las credenciales en
parameters.php. - Compara con los datos de DirectAdmin.
- Prueba la conexión manual.
- Revisa permisos y espacio en disco.
- Si todo falla, restaura o pide ayuda.
Con esta guía, tu tienda estará funcionando en poco tiempo. No te desesperes, es un error común y con solución. Si has llegado hasta aquí, ya sabes cómo arreglar base de datos PrestaShop como un profesional.
