🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Guía para resolver el error de conexión a base de datos en PrestaShop con DirectAdmin

Actualizado el 12 de noviembre de 2025

¿Tu tienda PrestaShop ha dejado de funcionar de repente y ves un mensaje de error similar a “Error de conexión a la base de datos” o “Cannot connect to database”? No te preocupes, es uno de los problemas más comunes en entornos de hosting compartido, VPS o servidores dedicados. En esta guía extensa y paso a paso, te explicaré cómo diagnosticar y solucionar este error cuando tu servidor usa DirectAdmin como panel de control. Soy un técnico de soporte amigable y voy a guiarte como si estuvieras hablando conmigo en soporte. Vamos a resolverlo juntos.


¿Por qué aparece este error en PrestaShop?

El error de conexión a la base de datos significa que PrestaShop no puede comunicarse con el motor de base de datos (normalmente MySQL o MariaDB). Las causas más frecuentes son:

  • Cambios en la contraseña o usuario de la base de datos.
  • La base de datos ha sido eliminada o su nombre ha cambiado.
  • El servidor de base de datos (MySQL/MariaDB) está caído o no responde.
  • Los archivos de configuración de PrestaShop (app/config/parameters.php) tienen datos incorrectos.
  • Problemas de permisos en los archivos de configuración.
  • El usuario de la base de datos no tiene permisos suficientes sobre la base de datos.
  • El servidor tiene límites de conexiones alcanzados.

[TIP] Antes de empezar, haz una copia de seguridad de tu base de datos y archivos. Siempre es mejor prevenir.


Requisitos previos

Para seguir esta guía necesitas:

  • Acceso a DirectAdmin (panel de control de tu hosting).
  • Acceso FTP o al administrador de archivos de DirectAdmin.
  • Conocimientos básicos de lectura de archivos de configuración (no te preocupes, te explico qué buscar).
  • Opcional: acceso a phpMyAdmin desde DirectAdmin.

Si no tienes alguno de estos accesos, contacta con tu proveedor de hosting. Ellos pueden ayudarte a obtenerlos.


Paso 1: Verifica que el servidor de base de datos esté funcionando

Lo primero es asegurarte de que MySQL o MariaDB esté corriendo en tu servidor. Si el servicio está caído, ningún sitio web podrá conectar.

Cómo verificarlo en DirectAdmin

  1. Inicia sesión en DirectAdmin.
  2. Busca la sección “Información del servidor” o “Server Info” (depende de la versión).
  3. Localiza el estado de los servicios. Deberías ver algo como “MySQL” o “MariaDB” con un indicador verde (Running) o rojo (Stopped).
  4. Si está detenido, puedes reiniciarlo desde el propio panel. Busca un botón “Start” o “Restart”.

[WARNING] Si no ves opción para reiniciar servicios, es posible que tu plan de hosting no te permita hacerlo. En ese caso, contacta con soporte técnico.

Si el servicio está corriendo, pasa al siguiente paso.


Paso 2: Revisa los datos de conexión en el archivo parameters.php de PrestaShop

PrestaShop guarda la configuración de la base de datos en un archivo llamado parameters.php, ubicado en app/config/. Si este archivo tiene datos incorrectos, la conexión fallará.

Cómo acceder al archivo desde DirectAdmin

  1. En DirectAdmin, ve a “Administrador de archivos” (File Manager).
  2. Navega hasta la carpeta raíz de tu PrestaShop. Normalmente es public_html o domains/tudominio.com/public_html.
  3. Dentro, abre la carpeta app y luego config.
  4. Busca el archivo parameters.php. Haz clic derecho y selecciona “Editar” (Edit).

¿Qué debes buscar dentro?

El archivo tiene una estructura similar a esta (no te asustes, solo nos interesan unas líneas):

<?php
return array(
    'parameters' => array(
        'database_host' => 'localhost',
        'database_port' => '3306',
        'database_name' => 'tu_usuario_tu_base',
        'database_user' => 'tu_usuario_tu_user',
        'database_password' => 'tu_contraseña',
        'database_prefix' => 'ps_',
        // ... más configuraciones
    ),
);

Verifica que:

  • database_host sea normalmente localhost (a menos que tu hosting use un servidor remoto).
  • database_port sea 3306 (puerto por defecto de MySQL).
  • database_name, database_user y database_password coincidan exactamente con los datos de tu base de datos en DirectAdmin.
  • No haya espacios o caracteres extraños al final de las cadenas.

[INFO] Si tu hosting usa un servidor de base de datos remoto, el database_host será una IP o un nombre de dominio (ej: mysql.tudominio.com). Pregunta a tu proveedor si no estás seguro.

Cómo obtener los datos correctos desde DirectAdmin

  1. En DirectAdmin, busca la sección “Administración de MySQL” o “MySQL Management”.
  2. Allí verás una lista de bases de datos y usuarios asociados.
  3. Si no recuerdas la contraseña, puedes cambiarla desde esa misma sección. Haz clic en “Cambiar contraseña” y anota la nueva.
  4. Si la base de datos no aparece, puede que la hayas eliminado sin querer. En ese caso, crea una nueva base de datos y un usuario, y luego actualiza el parameters.php.

[WARNING] Si cambias la contraseña desde DirectAdmin, debes actualizarla también en parameters.php. Si no, el error persistirá.


Paso 3: Verifica los permisos del archivo parameters.php

El archivo parameters.php debe tener permisos de lectura para el usuario del servidor web (normalmente www-data o nobody). Si los permisos son incorrectos, PrestaShop no podrá leer la configuración.

Cómo ajustar permisos desde el Administrador de archivos

  1. En el Administrador de archivos, localiza app/config/parameters.php.
  2. Haz clic derecho sobre el archivo y selecciona “Cambiar permisos” (Change Permissions).
  3. Establece los permisos a 644 (lectura y escritura para el propietario, solo lectura para grupo y otros). Si ves una casilla para “propietario” (owner), asegúrate de que sea el usuario de tu cuenta de hosting.
  4. Guarda los cambios.

[TIP] Si después de esto el error continúa, prueba con permisos 755 temporalmente (aunque no es recomendable por seguridad). Luego vuelve a 644.


Paso 4: Comprueba que el usuario de la base de datos tenga permisos sobre ella

A veces, el usuario existe pero no tiene todos los privilegios necesarios sobre la base de datos. PrestaShop necesita al menos permisos de SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, etc.

Cómo revisar y otorgar permisos desde phpMyAdmin

  1. Desde DirectAdmin, busca “phpMyAdmin” o “Base de datos MySQL” y haz clic.
  2. Se abrirá phpMyAdmin. Inicia sesión con las credenciales de tu base de datos (usuario y contraseña).
  3. En el panel izquierdo, selecciona tu base de datos (la que aparece en parameters.php).
  4. Ve a la pestaña “Privilegios” (Privileges).
  5. Busca el usuario correspondiente. Debería tener marcados casi todos los privilegios (especialmente los de datos y estructura).
  6. Si falta alguno, haz clic en “Editar privilegios” y marca todas las casillas de la sección “Privilegios de datos” y “Privilegios de estructura”. Luego haz clic en “Continuar” o “Guardar”.

[WARNING] No otorgues privilegios de administrador global (como SUPER o GRANT) a menos que sepas lo que haces. Con los privilegios sobre la base de datos específica es suficiente.


Paso 5: Verifica que el prefijo de tablas coincida

En parameters.php hay una línea 'database_prefix' => 'ps_'. Este prefijo debe coincidir con el que usan las tablas de tu base de datos. Si alguna vez cambiaste el prefijo manualmente o hiciste una migración, puede haber discrepancia.

Cómo comprobarlo

  1. En phpMyAdmin, selecciona tu base de datos.
  2. Mira los nombres de las tablas. Deberían empezar con ps_ (o el prefijo que hayas configurado).
  3. Si ves tablas sin prefijo o con otro prefijo, actualiza el valor en parameters.php.

Paso 6: Prueba la conexión manualmente desde un script

Para asegurarte de que el problema no es de PrestaShop sino de la conexión misma, puedes crear un pequeño script PHP de prueba.

Cómo hacerlo

  1. Desde el Administrador de archivos, crea un nuevo archivo en la raíz de tu PrestaShop (por ejemplo, testdb.php).
  2. Pega el siguiente código, reemplazando los valores con los tuyos:
<?php
$host = 'localhost';
$user = 'tu_usuario_tu_user';
$pass = 'tu_contraseña';
$db   = 'tu_usuario_tu_base';

$conn = new mysqli($host, $user, $pass, $db);

if ($conn->connect_error) {
    die("Error de conexión: " . $conn->connect_error);
} else {
    echo "Conexión exitosa a la base de datos.";
}
$conn->close();
?>
  1. Guarda el archivo.
  2. Accede a él desde tu navegador: http://tudominio.com/testdb.php.
  3. Si ves “Conexión exitosa”, el problema está en PrestaShop (quizás archivos corruptos o configuración adicional). Si ves un error, el problema está en los datos de conexión o en el servidor.

[WARNING] Elimina este archivo inmediatamente después de la prueba, ya que expone tus credenciales.


Paso 7: Revisa los logs de error de PrestaShop y del servidor

Los logs pueden darte pistas adicionales.

Logs de PrestaShop

  • Busca en la carpeta var/logs/ dentro de la raíz de PrestaShop. Allí hay archivos como prod.log o dev.log. Ábrelos y busca líneas que contengan “database” o “connection”.
  • Si no ves logs, activa el modo debug en PrestaShop (modifica parameters.php añadiendo 'ps_mode_dev' => true y 'ps_mode_demo' => false). Luego recarga la tienda y vuelve a revisar los logs.

Logs del servidor (DirectAdmin)

  • En DirectAdmin, busca “Registros del servidor” o “Server Logs”. Allí puedes ver los logs de error de Apache o Nginx.
  • Busca errores relacionados con MySQL o con tu dominio.

Paso 8: Verifica que no haya límites de conexiones alcanzados

En servidores compartidos, a veces hay un límite de conexiones simultáneas a la base de datos. Si tu tienda tiene mucho tráfico o hay otros sitios en el mismo servidor, podrías estar alcanzando ese límite.

Cómo verificarlo

  • Desde DirectAdmin, en la sección “Estadísticas de MySQL” o “MySQL Stats”, puedes ver el número de conexiones activas.
  • Si ves que está cerca del límite (por ejemplo, 30 de 30), contacta a tu proveedor para aumentar el límite o revisa si tienes algún plugin de PrestaShop que esté haciendo muchas consultas.

Soluciones rápidas adicionales

Si después de todo lo anterior el error persiste, prueba estas opciones:

  • Reinicia el servicio MySQL desde DirectAdmin (si tienes permisos).
  • Verifica que el archivo .htaccess no esté bloqueando la conexión (aunque es raro). Temporalmente, renómbralo a .htaccess_backup y prueba.
  • Reinstala los archivos de PrestaShop (sin borrar la base de datos). Sube de nuevo los archivos del núcleo (core) desde una copia limpia de la misma versión.
  • Contacta a tu proveedor de hosting si todo falla. A veces el problema está en el lado del servidor (firewall, IP bloqueada, etc.).

[INFO] Si tu hosting usa Syspanel (anteriormente HestiaCP), el puerto de acceso es el 2106. No obstante, los pasos son similares, solo cambia la interfaz del panel.


Preguntas frecuentes (FAQ)

¿Por qué aparece “Error de conexión a la base de datos” después de cambiar la contraseña?

Porque no actualizaste el archivo parameters.php. Sigue el Paso 2 de esta guía.

¿Puedo recuperar mi tienda si no tengo copia de seguridad de la base de datos?

Sí, si la base de datos aún existe pero los datos de acceso son incorrectos. Si la base de datos fue eliminada, necesitarás una copia de seguridad externa o contactar a tu proveedor.

¿Qué hago si el error aparece solo en algunas páginas?

Puede ser un problema de caché o de un módulo específico. Borra la caché de PrestaShop desde el panel de administración (si puedes acceder) o manualmente eliminando la carpeta var/cache/.

¿El error puede deberse a una actualización de PHP?

Sí, a veces una actualización de PHP cambia la configuración de los módulos de conexión a MySQL. Verifica que tu versión de PHP sea compatible con PrestaShop (consulta la documentación oficial).

¿Cómo evito que esto vuelva a ocurrir?

  • Realiza copias de seguridad periódicas de la base de datos y archivos.
  • Anota siempre los cambios que hagas en contraseñas o usuarios.
  • Mantén PrestaShop y sus módulos actualizados.
  • No modifiques archivos de configuración sin hacer una copia de seguridad previa.

Conclusión

El error de conexión a la base de datos en PrestaShop con DirectAdmin puede parecer aterrador, pero en la mayoría de los casos se soluciona revisando el archivo parameters.php, verificando los permisos y asegurándote de que los datos de acceso sean correctos. Si has seguido todos los pasos de esta guía y el problema persiste, no dudes en contactar a tu proveedor de hosting o a un sysadmin profesional. Recuerda siempre mantener copias de seguridad y documentar tus cambios.

Espero que esta guía te haya sido de ayuda. Si tienes más dudas, no dudes en preguntar. ¡Buena suerte con tu tienda PrestaShop!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel