Resolver error de conexión a base de datos en PrestaShop con DirectAdmin
¡Hola! Soy tu técnico de soporte amigable. Hoy vamos a resolver uno de los problemas más comunes y frustrantes cuando trabajas con PrestaShop: el temido error de conexión a la base de datos. Si ves un mensaje como "Error de conexión a la base de datos" o "PrestaShop no conecta base datos" en tu panel de administración o en tu tienda, no te preocupes. En esta guía te explico paso a paso cómo solucionarlo, especialmente si estás usando DirectAdmin como panel de control de hosting.
Vamos a ir desde lo más básico hasta soluciones más avanzadas, siempre con un lenguaje claro y ejemplos prácticos. ¡Empecemos!
¿Por qué aparece el error de conexión a base de datos en PrestaShop?
Este error suele ocurrir porque PrestaShop no puede comunicarse con el servidor de bases de datos MySQL/MariaDB. Las causas más comunes son:
- Datos de acceso incorrectos (usuario, contraseña, nombre de base de datos).
- Servidor de base de datos caído o no accesible.
- Permisos insuficientes del usuario de la base de datos.
- Archivo de configuración dañado (
settings.inc.php). - Problemas de firewall o puertos bloqueados.
- Actualización reciente de PrestaShop o cambios en el hosting.
Vamos a revisar cada una de estas causas y cómo solucionarlas en DirectAdmin.
Paso 1: Verifica los datos de conexión en el archivo de configuración
El primer lugar donde debes mirar es el archivo app/config/parameters.php (en PrestaShop 1.7+) o config/settings.inc.php (en versiones anteriores). Este archivo contiene los datos que PrestaShop utiliza para conectar a la base de datos.
¿Cómo acceder al archivo?
- Conéctate a tu hosting vía FTP o cPanel File Manager (en DirectAdmin puedes usar el Administrador de Archivos).
- Navega a la carpeta raíz de tu PrestaShop (normalmente
public_htmlotienda). - Busca el archivo:
- Para PrestaShop 1.7+:
app/config/parameters.php - Para versiones anteriores:
config/settings.inc.php
- Para PrestaShop 1.7+:
¿Qué debes revisar?
Dentro del archivo, busca líneas como estas (ejemplo de PrestaShop 1.7):
'database_host' => 'localhost',
'database_name' => 'tu_base_de_datos',
'database_user' => 'tu_usuario',
'database_password' => 'tu_contraseña',
'database_port' => '3306',
[WARNING] Asegúrate de que no haya espacios extra ni comillas mal colocadas. Un error tipográfico aquí puede causar el problema.
Si encuentras algún dato incorrecto, corrígelo. Si no recuerdas los datos, puedes obtenerlos desde DirectAdmin:
- Ingresa a DirectAdmin.
- Ve a MySQL Management (o Base de Datos MySQL).
- Allí verás la lista de bases de datos y usuarios asociados. Toma nota del nombre, usuario y contraseña.
Paso 2: Comprueba que el servidor MySQL esté funcionando
A veces el servidor de base de datos puede estar caído o reiniciándose. Para verificarlo:
En DirectAdmin:
- Ve a Account Manager > Services.
- Busca el servicio MySQL o MariaDB.
- Si está detenido, haz clic en Start o Reiniciar.
[TIP] Si no ves esta opción, contacta a tu proveedor de hosting. En algunos planes compartidos, el servicio lo gestiona el soporte técnico.
También puedes probar conectarte manualmente desde phpMyAdmin (accesible desde DirectAdmin en phpMyAdmin). Si phpMyAdmin abre sin problemas, el servidor MySQL está funcionando. Si no, el problema está en el servidor.
Paso 3: Revisa los permisos del usuario de la base de datos
Incluso si los datos son correctos, el usuario puede no tener todos los permisos necesarios. PrestaShop necesita al menos permisos de SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, DROP sobre la base de datos.
Cómo otorgar permisos en DirectAdmin:
- Ve a MySQL Management.
- Busca el usuario asociado a tu base de datos.
- Haz clic en Edit Privileges (o Privilegios).
- Marca TODOS los privilegios (o al menos los mencionados arriba).
- Guarda los cambios.
[INFO] Si el usuario no existe, puedes crearlo desde el mismo panel. Asegúrate de asignarlo a la base de datos correcta.
Paso 4: Verifica el host de la base de datos
En la mayoría de los casos, el host es localhost. Sin embargo, en algunos servidores compartidos o con DirectAdmin, puede ser necesario usar 127.0.0.1 o incluso la dirección IP del servidor.
¿Cómo saber cuál usar?
- Si tu hosting es compartido, lo más probable es que sea
localhost. - Si tienes un servidor dedicado o VPS, pregunta a tu proveedor.
- También puedes probar cambiando temporalmente en el archivo
parameters.phposettings.inc.php:
'database_host' => '127.0.0.1',
Guarda el archivo y prueba de nuevo. Si funciona, déjalo así.
[WARNING] No uses
localhostsi tu base de datos está en un servidor remoto. En ese caso, necesitas la IP o el nombre del servidor remoto.
Paso 5: Comprueba el puerto de conexión
El puerto por defecto de MySQL es 3306. Si tu servidor usa un puerto diferente (por ejemplo, 3307), debes especificarlo en el archivo de configuración.
En el archivo parameters.php:
'database_port' => '3307',
Si no estás seguro, consulta con tu hosting o revisa la configuración de MySQL en DirectAdmin (a veces aparece en MySQL Management > Status).
Paso 6: Verifica el firewall y los accesos remotos
Si tu base de datos está en un servidor diferente al de tu web (por ejemplo, un servidor MySQL dedicado), asegúrate de que el firewall permita la conexión desde la IP de tu servidor web.
En DirectAdmin (si tienes acceso root):
- Ve a Firewall o CSF (ConfigServer Security & Firewall).
- Asegúrate de que el puerto 3306 esté abierto para la IP de tu servidor web.
- Si no sabes cómo hacerlo, pide ayuda a tu proveedor.
[INFO] Para la mayoría de usuarios de hosting compartido, este paso no es necesario porque todo está en el mismo servidor.
Paso 7: Revisa el archivo .htaccess o problemas de redirección
A veces un .htaccess mal configurado puede causar errores de conexión, especialmente si redirige a otro dominio o carpeta.
- Accede a tu servidor vía FTP.
- Renombra temporalmente el archivo
.htaccessa.htaccess_backup. - Prueba tu tienda de nuevo. Si funciona, el problema está en el
.htaccess. Puedes regenerarlo desde el panel de administración de PrestaShop (Parámetros de la tienda > Tráfico y SEO > URL amigables > Guardar).
Paso 8: Solución avanzada: Restablecer la conexión desde PrestaShop
Si todo lo anterior falla, puedes forzar a PrestaShop a regenerar la configuración de la base de datos.
Para PrestaShop 1.7+:
- Conéctate a tu base de datos vía phpMyAdmin.
- Busca la tabla
ps_configuration(ops_configurationsegún el prefijo). - Localiza las filas relacionadas con la conexión (ej.
PS_DB_HOST,PS_DB_NAME, etc.). No las borres, solo verifica que coincidan con el archivoparameters.php.
[WARNING] No edites directamente la base de datos si no estás seguro. Un error puede dañar tu tienda.
Para PrestaShop 1.6 o anterior:
Puedes borrar el archivo config/settings.inc.php y luego ejecutar el instalador de PrestaShop para que lo reconstruya. Pero cuidado: esto borrará la configuración de la tienda. Solo hazlo si tienes un backup.
Paso 9: Verifica la versión de PHP y MySQL
PrestaShop requiere versiones específicas de PHP y MySQL. Por ejemplo:
- PrestaShop 1.7: PHP 7.1 a 7.4, MySQL 5.6+.
- PrestaShop 8: PHP 7.3 a 8.1, MySQL 5.7+.
En DirectAdmin puedes cambiar la versión de PHP desde Select PHP Version (o PHP Selector). Asegúrate de que sea compatible.
Preguntas Frecuentes (FAQ)
❓ ¿Qué hago si el error persiste después de todos los pasos?
Puede ser un problema de corrupción de archivos. Descarga una copia limpia de PrestaShop desde la página oficial y reemplaza los archivos del núcleo (carpetas app, vendor, src, etc.). No toques la carpeta themes ni modules para no perder personalizaciones.
❓ ¿Cómo saber si el error es de la base de datos o del servidor web?
Si ves el mensaje "Error de conexión a la base de datos" en la tienda, es casi seguro que es de la base de datos. Si ves un error 500 o página en blanco, puede ser de PHP o del servidor web.
❓ ¿Puedo usar un plugin o módulo para solucionarlo?
Existen módulos de diagnóstico, pero lo mejor es resolver la causa raíz. Te recomiendo seguir esta guía paso a paso.
❓ ¿Qué pasa si estoy usando Syspanel (antes HestiaCP) en lugar de DirectAdmin?
Si tu panel es Syspanel (puerto de acceso 2106), el proceso es similar. Busca la sección de bases de datos en el panel, verifica los datos y el estado del servicio MySQL. El archivo de configuración de PrestaShop es el mismo.
Resumen final
El error de conexión a base de datos en PrestaShop con DirectAdmin suele resolverse revisando:
- Datos de acceso en
parameters.phposettings.inc.php. - Estado del servicio MySQL en DirectAdmin.
- Permisos del usuario de la base de datos.
- Host y puerto correctos.
- Firewall y accesos (si aplica).
- Versiones de PHP y MySQL compatibles.
Si después de todo esto el problema continúa, no dudes en contactar a tu proveedor de hosting. Muchas veces ellos pueden verificar logs del servidor que nosotros no vemos.
Espero que esta guía te haya sido de ayuda. ¡Tu tienda online volverá a funcionar en poco tiempo! Si tienes más dudas, déjalas en los comentarios (si este es un blog) o contacta a nuestro soporte. ¡Estamos aquí para ayudarte!
