Solucionar errores de conexión a la base de datos en PrestaShop con DirectAdmin
Primeros pasos: entiende qué está pasando
Cuando tu tienda PrestaShop muestra un mensaje del tipo "Error de conexión a la base de datos" o "Link to database cannot be established", no es momento de entrar en pánico. Es uno de los errores más comunes en el mundo del hosting y, en la gran mayoría de los casos, tiene una solución sencilla que puedes aplicar tú mismo en cuestión de minutos.
Este error significa que tu tienda no puede comunicarse con el servidor de base de datos MySQL o MariaDB donde se almacenan tus productos, pedidos y clientes. Sin esa conexión, PrestaShop no puede cargar absolutamente nada, por eso ves la pantalla en blanco o el mensaje de error.
Si tu hosting utiliza DirectAdmin, tienes una ventaja importante: el panel es muy visual y te permite acceder a todas las herramientas necesarias para diagnosticar y reparar el problema sin necesidad de ser un experto en programación.
En esta guía extensa, te voy a explicar paso a paso cómo solucionar el error base de datos PrestaShop cuando trabajas con DirectAdmin PrestaShop. Vamos a ir desde lo más básico hasta las soluciones más avanzadas, siempre con un lenguaje claro y ejemplos prácticos.
¿Por qué ocurre el error de conexión a la base de datos?
Antes de lanzarnos a solucionar el problema, conviene entender las causas más habituales. Así podrás identificar rápidamente cuál es tu caso y aplicar la solución correcta.
Causas más frecuentes
- Credenciales incorrectas: El archivo de configuración de PrestaShop (
parameters.php) contiene los datos de acceso a la base de datos. Si estos no coinciden con los reales, la conexión falla. - La base de datos no existe o fue eliminada: A veces, al hacer limpiezas o migraciones, la base de datos desaparece o se corrompe.
- El servidor MySQL está caído o sobrecargado: El servicio de base de datos puede estar detenido en el servidor.
- Límite de conexiones alcanzado: Si tu plan de hosting tiene un límite de conexiones simultáneas, es posible que se sature.
- Archivos de configuración corruptos: Después de una actualización fallida o una edición manual incorrecta, los archivos pueden dañarse.
- Cambio de contraseña reciente: Si cambiaste la contraseña de MySQL desde DirectAdmin y no actualizaste PrestaShop, tendrás este error.
- Problemas de permisos: El usuario de la base de datos puede no tener permisos suficientes sobre la base.
Solución paso a paso: cómo solucionar el error base de datos PrestaShop
Vamos a seguir un orden lógico, desde las comprobaciones más simples hasta las más complejas.
Paso 1: Accede a DirectAdmin y verifica el estado de MySQL
Lo primero que debes hacer es entrar en tu panel de DirectAdmin. Una vez dentro, busca la sección de "Gestión de MySQL" o "Administración de bases de datos".
Comprueba que el servicio MySQL está activo
En DirectAdmin, normalmente puedes ver el estado de los servicios en la sección "Estado del sistema" o "Servicios". Busca la línea que dice MySQL o MariaDB.
- Si aparece en verde o con la palabra "running", el servicio está activo.
- Si aparece en rojo o con "stopped", necesitas iniciarlo.
[WARNING] Si el servicio está detenido, no intentes reiniciarlo si no sabes lo que haces. Contacta con tu proveedor de hosting para que lo reactive, ya que puede ser un problema a nivel de servidor.
Paso 2: Revisa las credenciales en el archivo de configuración
El siguiente paso es verificar que los datos de acceso a la base de datos que tiene PrestaShop son correctos. Este es el origen del 90% de los errores de conexión.
¿Dónde está el archivo de configuración?
En PrestaShop 1.7 y versiones posteriores, el archivo se llama parameters.php y se encuentra en la carpeta app/config/ de tu instalación.
En PrestaShop 1.6 y anteriores, el archivo es settings.inc.php y está en la carpeta config/.
Cómo acceder al archivo
Puedes acceder de dos formas:
- Desde el administrador de archivos de DirectAdmin: En el panel, busca "Administrador de archivos" y navega hasta la carpeta de tu tienda.
- Mediante FTP: Usa un cliente como FileZilla para conectarte a tu servidor y descargar el archivo.
Qué debes comprobar
Una vez que tengas el archivo abierto, busca líneas como estas:
'database_host' => 'localhost',
'database_name' => 'tu_basededatos',
'database_user' => 'tu_usuario',
'database_password' => 'tu_contraseña',
Verifica que estos valores coincidan exactamente con los datos que tienes en DirectAdmin.
[TIP] Si no recuerdas tu contraseña de MySQL, puedes cambiarla desde DirectAdmin en la sección de bases de datos. Pero recuerda: si la cambias, debes actualizar también el archivo parameters.php.
Paso 3: Verifica que la base de datos existe y tiene contenido
A veces la base de datos existe pero está vacía, o directamente fue borrada. Vamos a comprobarlo.
Desde DirectAdmin
- Ve a "Administración de MySQL".
- Verás una lista de todas tus bases de datos.
- Busca la que aparece en tu archivo
parameters.php. - Si no aparece, significa que fue eliminada. Si aparece, haz clic en "phpMyAdmin" para abrirla.
En phpMyAdmin
Una vez dentro de phpMyAdmin, a la izquierda verás la lista de tablas de tu base de datos.
- Si ves muchas tablas (ps_products, ps_orders, ps_customers, etc.), la base de datos está completa.
- Si solo ves unas pocas tablas o ninguna, puede que esté corrupta o vacía.
[INFO] Si la base de datos está vacía, tendrás que restaurar una copia de seguridad. Si no tienes una copia reciente, contacta con tu proveedor de hosting, ya que puede tener una en el servidor.
Paso 4: Comprueba los permisos del usuario de la base de datos
Un error común es que el usuario de la base de datos no tenga todos los privilegios necesarios. Esto puede pasar después de una migración o de una restauración.
Cómo verificar y corregir permisos
- En DirectAdmin, ve a "Administración de MySQL".
- Busca la base de datos que usa tu PrestaShop.
- En la lista de usuarios asignados a esa base, verifica que tu usuario tiene todos los privilegios.
- Si no los tiene, edita los permisos y marca todas las casillas (SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, etc.).
[WARNING] No otorgues permisos innecesarios a usuarios que no los necesiten. Solo el usuario principal de la base de datos debe tener todos los privilegios.
Paso 5: Revisa el límite de conexiones y la saturación del servidor
Si tu tienda recibe mucho tráfico o tu plan de hosting es básico, es posible que el servidor MySQL esté rechazando conexiones por saturación.
Síntomas de saturación
- El error aparece solo en horas punta.
- La tienda funciona después de unos minutos de espera.
- Otros sitios en el mismo servidor también tienen problemas.
Qué puedes hacer
- Optimiza las consultas: A veces el problema es que PrestaShop hace demasiadas consultas. Activa el caché en el panel de administración.
- Aumenta el límite de conexiones: Esto solo puedes hacerlo si tienes un VPS o servidor dedicado. En hosting compartido, contacta con tu proveedor.
- Reduce el número de módulos activos: Algunos módulos hacen consultas constantes a la base de datos.
[TIP] Si tu tienda tiene mucho tráfico, considera cambiar a un plan de hosting con mejor rendimiento o contratar una base de datos dedicada.
Paso 6: Limpia la caché de PrestaShop
A veces el error persiste incluso cuando todo está correcto. Esto puede deberse a una caché corrupta.
Cómo limpiar la caché
- Accede a tu panel de administración de PrestaShop (si es que puedes entrar).
- Ve a "Parámetros avanzados" > "Rendimiento".
- Haz clic en "Vaciar la caché".
Si no puedes acceder al panel de administración, puedes limpiar la caché manualmente:
- Conéctate por FTP a tu servidor.
- Navega hasta la carpeta
var/cache/(en PrestaShop 1.7) ocache/(en versiones anteriores). - Elimina todos los archivos dentro de esa carpeta (pero no la carpeta en sí).
[INFO] No te preocupes si eliminas los archivos de caché, PrestaShop los regenerará automáticamente la próxima vez que cargue una página.
Paso 7: Revisa el archivo .htaccess
Un archivo .htaccess corrupto o con reglas incorrectas puede interferir con la conexión a la base de datos.
Cómo verificar el .htaccess
- En el administrador de archivos de DirectAdmin, busca el archivo
.htaccessen la raíz de tu tienda. - Si no lo ves, activa la opción de "mostrar archivos ocultos".
- Descarga una copia de seguridad de este archivo.
- Elimínalo temporalmente y recarga tu tienda.
Si el error desaparece, el problema estaba en el .htaccess. Puedes regenerarlo desde el panel de administración de PrestaShop (Parámetros avanzados > Rendimiento > Generar .htaccess).
[WARNING] No elimines el .htaccess de forma permanente si tu tienda usa URLs amigables, redirecciones o protección de directorios. Solo hazlo como prueba y luego regenera.
Paso 8: Reconstruye el archivo de configuración
Si has verificado todos los datos y sigues con el problema, es posible que el archivo parameters.php esté corrupto o incompleto.
Cómo reconstruirlo
- Descarga una copia limpia de PrestaShop de la misma versión que tienes instalada.
- Extrae el archivo
parameters.phpde la copia. - Edítalo con tus datos de conexión (host, nombre de base, usuario y contraseña).
- Sube el archivo editado a tu servidor, reemplazando el existente.
[INFO] Asegúrate de que la versión de PrestaShop sea exactamente la misma, de lo contrario podrías tener otros problemas de compatibilidad.
Paso 9: Verifica si hay problemas con el servidor MySQL
Si has llegado hasta aquí y nada funciona, puede que el problema no esté en tu configuración sino en el propio servidor.
Qué puedes comprobar
- Espacio en disco: Si el servidor está lleno, MySQL puede fallar. Revisa el uso de disco en DirectAdmin.
- Registros de errores: En DirectAdmin, busca la sección de "Registros" o "Logs" y revisa los errores de MySQL.
- Tiempo de inactividad: Pregunta a tu proveedor si ha habido caídas recientes del servicio MySQL.
[WARNING] Si el problema es del servidor, no hay nada que puedas hacer desde tu panel. Contacta con tu proveedor de hosting y explica el error que estás viendo.
Soluciones avanzadas para casos específicos
En esta sección voy a cubrir algunos escenarios más concretos que pueden estar causando el error base de datos PrestaShop.
Error después de una migración
Si acabas de migrar tu tienda a un nuevo servidor o a un nuevo hosting, es normal que tengas problemas de conexión.
Pasos específicos para migraciones
- Verifica que la base de datos se importó correctamente en el nuevo servidor.
- Asegúrate de que el usuario de la base de datos existe en el nuevo servidor.
- Comprueba que el host de la base de datos es correcto. A veces no es
localhost, sino una dirección IP o un nombre de servidor específico.
[TIP] En muchos hostings, el host de la base de datos es localhost. Pero en servidores con configuraciones especiales, puede ser algo como mysql.tudominio.com o una IP como 127.0.0.1.
Error después de un cambio de contraseña
Si cambiaste la contraseña del usuario de MySQL, debes actualizar también el archivo de configuración de PrestaShop.
Cómo solucionarlo
- Ve a DirectAdmin > Administración de MySQL.
- Cambia la contraseña del usuario de tu base de datos.
- Edita el archivo
parameters.phpy actualiza el campodatabase_password. - Guarda los cambios y recarga tu tienda.
[WARNING] No utilices caracteres especiales como #, $ o % en la contraseña si no estás seguro de cómo escapar esos caracteres en el archivo de configuración. Algunos caracteres pueden romper el archivo PHP.
Error con Syspanel (anteriormente HestiaCP)
Si tu hosting utiliza Syspanel (el antiguo HestiaCP), el proceso es similar pero con algunas diferencias en la interfaz. Recuerda que el puerto de acceso a Syspanel es el 2106.
Cómo acceder a la gestión de bases de datos en Syspanel
- Abre tu navegador y escribe:
https://tudominio.com:2106 - Inicia sesión con tus credenciales.
- Busca la sección de "Bases de datos" o "MySQL".
- Ahí podrás ver tus bases de datos, usuarios y permisos.
[INFO] La gestión de bases de datos en Syspanel es muy similar a DirectAdmin, así que los pasos anteriores te servirán igualmente.
Preguntas frecuentes (FAQ)
¿Por qué mi tienda muestra el error solo en el móvil?
Esto suele estar relacionado con la caché o con la configuración de tu proveedor de hosting. Prueba a limpiar la caché del navegador móvil y a reiniciar el servidor.
¿Puedo resolver el error sin acceder a DirectAdmin?
Sí, si tienes acceso por FTP puedes editar los archivos directamente. Pero necesitarás al menos conocer tus credenciales de base de datos.
¿Qué hago si no tengo copia de seguridad de mi base de datos?
Contacta con tu proveedor de hosting inmediatamente. Muchos tienen copias de seguridad automáticas en el servidor y pueden restaurarlas por ti.
¿Cuánto tiempo tarda en solucionarse este error?
Si el problema es de credenciales o permisos, puedes solucionarlo en 5-10 minutos. Si es un problema del servidor, dependerá de tu proveedor.
¿Es normal que este error aparezca después de una actualización de PrestaShop?
Sí, es relativamente común. Las actualizaciones pueden modificar la estructura de la base de datos y, si algo falla, puede provocar errores de conexión.
Consejos finales para evitar futuros errores de conexión
La prevención es siempre mejor que la solución. Aquí tienes algunos consejos para evitar que este error vuelva a aparecer:
- Haz copias de seguridad periódicas: Tanto de los archivos como de la base de datos. Puedes programarlas desde DirectAdmin.
- Actualiza PrestaShop con cuidado: Siempre haz una copia de seguridad antes de actualizar.
- No cambies contraseñas sin actualizar la configuración: Si cambias la contraseña de MySQL, actualiza también el archivo
parameters.php. - Mantén los módulos al mínimo: Cada módulo añade complejidad y posibles conflictos.
- Controla el espacio en disco: Un servidor lleno puede provocar errores de MySQL.
- Revisa los registros de errores: DirectAdmin te permite ver los logs de MySQL. Revísalos de vez en cuando.
Resumen final
El error base de datos PrestaShop en DirectAdmin PrestaShop es un problema común pero solucionable. Siguiendo estos pasos, podrás solucionar errores PrestaShop de forma rápida y sin necesidad de conocimientos técnicos avanzados.
Recuerda el orden lógico de actuación:
- Verifica que el servicio MySQL está activo.
- Comprueba las credenciales en el archivo de configuración.
- Asegúrate de que la base de datos existe y tiene contenido.
- Revisa los permisos del usuario.
- Comprueba si hay saturación de conexiones.
