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

Cómo resolver problemas de conexión a base de datos en PrestaShop DirectAdmin

Actualizado el 25 de octubre de 2025

Introducción: ¿Por qué mi tienda PrestaShop no se conecta a la base de datos?

Si estás leyendo esto, probablemente te has encontrado con una pantalla en blanco o un mensaje de error en tu tienda PrestaShop que dice algo como "Error de conexión a la base de datos" o "Unable to connect to database". No te preocupes, es uno de los problemas más comunes, pero también de los más fáciles de solucionar si sabes por dónde empezar.

En este artículo, te guiaré paso a paso para que puedas solucionar el error base datos PrestaShop cuando tu tienda está alojada en un panel DirectAdmin. Vamos a cubrir desde lo más básico (como verificar credenciales) hasta soluciones más técnicas (como revisar la configuración de MySQL). Todo explicado de forma clara, sin tecnicismos innecesarios.


¿Qué causa el error de conexión a base de datos en PrestaShop?

Antes de lanzarnos a las soluciones, es importante entender por qué ocurre este problema. Las causas más frecuentes son:

  • Credenciales incorrectas: El usuario, contraseña o nombre de la base de datos no coinciden con los que tienes configurados en PrestaShop.
  • Servidor MySQL caído o sobrecargado: El servicio de base de datos no está funcionando.
  • Límites de conexión excedidos: Demasiadas conexiones simultáneas al servidor MySQL.
  • Archivo de configuración dañado: El archivo settings.inc.php de PrestaShop tiene datos incorrectos.
  • Problemas de permisos: El usuario de la base de datos no tiene acceso a la base de datos correcta.
  • Cambios en el hosting: Migraciones, actualizaciones de servidor o cambios en DirectAdmin.

[WARNING] Si ves el error justo después de mover tu tienda a un nuevo servidor o cambiar de hosting, lo más probable es que las credenciales en el archivo de configuración no se hayan actualizado.


Paso 1: Verifica el estado del servicio MySQL en DirectAdmin

Lo primero que debemos hacer es asegurarnos de que el motor de base de datos (MySQL o MariaDB) esté funcionando. En DirectAdmin, puedes comprobarlo fácilmente.

Cómo acceder al estado de MySQL desde DirectAdmin:

  1. Inicia sesión en tu panel de DirectAdmin.
  2. Busca la sección "Account Manager" o "Extra Features" (depende de la versión).
  3. Haz clic en "MySQL Management" o "Database Management".
  4. Verás una lista de tus bases de datos. Si ves un mensaje como "MySQL is running", el servicio está activo. Si no, verás un error.

Si el servicio no está corriendo, contacta a tu proveedor de hosting. En la mayoría de los casos, ellos pueden reiniciar MySQL desde el servidor.

[TIP] Si usas Syspanel (antes conocido como HestiaCP), el puerto de acceso es el 2106. Allí también puedes verificar el estado de MySQL desde la sección de bases de datos.


Paso 2: Revisa el archivo de configuración de PrestaShop

PrestaShop guarda los datos de conexión a la base de datos en un archivo llamado settings.inc.php, ubicado en la carpeta config de tu instalación.

¿Cómo encontrar y editar este archivo?

  1. Accede a tu servidor mediante FTP (FileZilla, por ejemplo) o al Administrador de Archivos de DirectAdmin.
  2. Navega hasta la carpeta [raíz de tu tienda]/config/.
  3. Busca el archivo settings.inc.php.
  4. Ábrelo con un editor de texto (Bloc de notas, Sublime Text, etc.).

Dentro del archivo, busca una sección similar a esta:

define('_DB_SERVER_', 'localhost');
define('_DB_NAME_', 'tu_base_de_datos');
define('_DB_USER_', 'tu_usuario');
define('_DB_PASSWD_', 'tu_contraseña');
define('_DB_PREFIX_', 'ps_');

¿Qué debes verificar?

  • _DB_SERVER_: Normalmente es localhost. Si tu hosting usa un servidor remoto, te lo habrán indicado.
  • _DB_NAME_: Debe coincidir exactamente con el nombre de la base de datos que creaste en DirectAdmin.
  • _DB_USER_: El usuario debe tener permisos sobre esa base de datos.
  • _DB_PASSWD_: La contraseña debe ser la correcta (sin espacios adicionales).

[WARNING] Si copias y pegas desde DirectAdmin, asegúrate de no incluir espacios al final. Un simple espacio puede romper la conexión.

Si encuentras algún error, corrígelo y guarda el archivo. Luego, intenta acceder a tu tienda nuevamente.


Paso 3: Crea un nuevo usuario y base de datos en DirectAdmin

A veces, el problema es que el usuario o la base de datos se han corrompido. La solución más limpia es crear unos nuevos y reconfigurar PrestaShop.

Pasos para crear una base de datos en DirectAdmin:

  1. En DirectAdmin, ve a "MySQL Management".
  2. Haz clic en "Create Database".
  3. Ingresa un nombre para la base de datos (ej: mitienda_bd).
  4. Crea un usuario y una contraseña segura. Anótalos.
  5. Asigna el usuario a la base de datos (marca todos los permisos: SELECT, INSERT, UPDATE, DELETE, etc.).
  6. Haz clic en "Create".

Luego, actualiza PrestaShop:

  1. Edita el archivo settings.inc.php como vimos en el paso 2.
  2. Reemplaza los valores de _DB_NAME_, _DB_USER_ y _DB_PASSWD_ con los nuevos.
  3. Guarda y prueba tu tienda.

[INFO] Si tu tienda ya tenía datos, necesitarás importar una copia de seguridad de la base de datos anterior. Puedes hacerlo desde phpMyAdmin (en DirectAdmin, busca "phpMyAdmin" en el menú).


Paso 4: Verifica los permisos del usuario de MySQL

Incluso si las credenciales son correctas, el usuario puede no tener permisos suficientes sobre la base de datos. Esto es común después de migraciones.

Cómo comprobar permisos desde DirectAdmin:

  1. Ve a "MySQL Management".
  2. Busca la base de datos problemática.
  3. Haz clic en el icono de "Edit" o "Permissions" (generalmente un candado o un lápiz).
  4. Asegúrate de que el usuario tenga todos los privilegios marcados (especialmente ALL PRIVILEGES si estás en un entorno de producción).

Si no ves la opción, puedes usar phpMyAdmin:

  1. Abre phpMyAdmin desde DirectAdmin.
  2. Selecciona tu base de datos.
  3. Ve a la pestaña "Privileges".
  4. Edita el usuario y asigna todos los privilegios.

Paso 5: Comprueba los límites de conexión MySQL

Si tu tienda recibe mucho tráfico, es posible que estés alcanzando el límite de conexiones simultáneas. Esto genera el error "Too many connections".

¿Cómo saber si este es el problema?

  • El error en PrestaShop puede decir algo como "User 'usuario' has exceeded the 'max_user_connections' resource".
  • En DirectAdmin, no siempre puedes cambiar este límite directamente, pero puedes solicitarlo a tu hosting.

Soluciones temporales:

  • Optimiza tu tienda: Desactiva módulos innecesarios, limpia la caché.
  • Aumenta el límite: Contacta a tu proveedor y pide que incrementen max_connections o max_user_connections.
  • Usa un plugin de caché: Reduce las consultas a la base de datos.

[TIP] Si usas Syspanel (puerto 2106), puedes verificar el número de conexiones activas desde la terminal con el comando mysqladmin processlist.


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

Para descartar que el problema sea de PrestaShop y no del servidor, puedes crear un pequeño archivo PHP que pruebe la conexión.

Crea un archivo test_db.php:

  1. Abre un editor de texto.
  2. Copia y pega este código:
<?php
$servidor = 'localhost';
$usuario = 'tu_usuario';
$contraseña = 'tu_contraseña';
$basedatos = 'tu_base_de_datos';

$conexion = new mysqli($servidor, $usuario, $contraseña, $basedatos);

if ($conexion->connect_error) {
    die("Error de conexión: " . $conexion->connect_error);
} else {
    echo "Conexión exitosa a la base de datos.";
}
$conexion->close();
?>
  1. Reemplaza tu_usuario, tu_contraseña y tu_base_de_datos con los datos reales.
  2. Sube el archivo a la raíz de tu tienda (vía FTP o Administrador de Archivos).
  3. Accede a tudominio.com/test_db.php.

Si ves "Conexión exitosa", el problema está en la configuración de PrestaShop. Si ves un error, el problema es del servidor o las credenciales.

[WARNING] Borra el archivo test_db.php después de usarlo, ya que expone tus credenciales.


Paso 7: Revisa el firewall y los puertos de MySQL

En algunos servidores, el puerto de MySQL (por defecto 3306) puede estar bloqueado por un firewall. Esto es más común en servidores dedicados o VPS.

Cómo verificarlo en DirectAdmin:

  • Si tienes acceso a "Firewall" en DirectAdmin, asegúrate de que el puerto 3306 esté permitido para conexiones locales (127.0.0.1).
  • Si usas un servidor remoto de MySQL, el puerto debe estar abierto para tu IP.

[INFO] En la mayoría de los planes de hosting compartido, esto no es un problema, ya que todo corre en el mismo servidor.


Paso 8: Restaura una copia de seguridad de la base de datos

Si después de todos los pasos anteriores el error persiste, es posible que la base de datos esté corrupta. La solución es restaurar una copia de seguridad reciente.

Cómo restaurar desde DirectAdmin:

  1. Ve a "MySQL Management".
  2. Busca la opción "Backup" o "Restore".
  3. Si tienes un archivo .sql de respaldo, súbelo.
  4. También puedes usar phpMyAdmin:
    • Selecciona la base de datos.
    • Ve a la pestaña "Import".
    • Sube tu archivo .sql.

[TIP] Siempre mantén copias de seguridad automáticas. En DirectAdmin puedes configurarlas desde "Cron Jobs".


Preguntas frecuentes (FAQ)

¿Qué hago si el error aparece después de actualizar PrestaShop?

Las actualizaciones a veces modifican el archivo settings.inc.php. Revisa que los datos sigan siendo los mismos. Si no, restaura una copia de seguridad del archivo antes de la actualización.

¿Puedo usar el mismo usuario para varias bases de datos?

Sí, pero cada base de datos debe tener sus propios permisos. En DirectAdmin, puedes asignar un mismo usuario a varias bases de datos desde "MySQL Management".

¿Cómo cambio la contraseña de la base de datos en DirectAdmin?

Ve a "MySQL Management", busca el usuario, haz clic en "Edit" y cambia la contraseña. Luego, actualiza el archivo settings.inc.php con la nueva contraseña.

¿Qué significa "localhost" en la configuración?

Significa que la base de datos está en el mismo servidor que tu sitio web. Si tu hosting usa servidores separados, te darán una dirección IP o un nombre de host.

¿Syspanel (HestiaCP) es igual que DirectAdmin?

No, son paneles diferentes. Syspanel (HestiaCP) usa el puerto 2106 para acceso. La gestión de bases de datos es similar, pero la interfaz cambia. En Syspanel, busca "Databases" en el menú.


Conclusión

Resolver el error base datos PrestaShop en DirectAdmin no tiene por qué ser una pesadilla. Siguiendo estos pasos, desde verificar el servicio MySQL hasta restaurar una copia de seguridad, podrás recuperar tu tienda en pocos minutos. Recuerda:

  • Siempre verifica las credenciales primero.
  • Usa el archivo settings.inc.php como punto de partida.
  • No dudes en contactar a tu hosting si el problema persiste.

Si este artículo te ha sido útil, compártelo con otros dueños de tiendas PrestaShop. ¡Y no olvides hacer copias de seguridad regularmente!

[INFO] Para más guías sobre PrestaShop DirectAdmin base datos, visita nuestro centro de ayuda o escribe a soporte. Estamos aquí para ayudarte.

¿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