Resolución de errores de conexión a base de datos en PrestaShop (DirectAdmin)
¡Hola! Soy tu técnico de soporte amigable. Si estás leyendo esto, seguramente te has topado con el temido mensaje de "Error de conexión a la base de datos" en tu tienda PrestaShop alojada en un panel DirectAdmin. No te preocupes, es un problema más común de lo que crees y, por lo general, tiene una solución sencilla.
Vamos a desglosar este error paso a paso. Lo haremos de forma clara y sin tecnicismos complicados. Piensa en mí como ese amigo que te explica cómo arreglar algo mientras tomas un café.
¿Por qué aparece este error en PrestaShop?
Cuando ves la pantalla en blanco de PrestaShop con el mensaje "Error de conexión a la base de datos" o "Link to database cannot be established", significa que tu tienda no puede comunicarse con el motor que guarda toda tu información: productos, clientes, pedidos, etc. Es como si tu coche no pudiera arrancar porque la batería está desconectada.
Las causas más frecuentes son:
- Credenciales incorrectas: El usuario, la contraseña o el nombre de la base de datos no coinciden con los que tienes configurados en PrestaShop.
- Servidor de base de datos caído o reiniciado: El servicio MySQL/MariaDB se ha detenido o ha tenido un fallo temporal.
- Problemas de permisos: El usuario de la base de datos no tiene los permisos necesarios para acceder a ella.
- Configuración de
settings.inc.phpdañada: El archivo donde PrestaShop guarda los datos de conexión está corrupto o tiene errores. - Host de la base de datos incorrecto: A veces, el servidor no es "localhost" sino una dirección IP o un nombre de servidor específico.
Vamos a solucionarlo. Te guiaré por cada posible causa, desde lo más simple a lo más complejo.
Paso 1: Verifica el Estado del Servicio de Base de Datos en DirectAdmin
Antes de tocar nada, asegurémonos de que el motor de base de datos esté funcionando. Es como verificar si el motor de tu coche está encendido.
- Accede a tu panel DirectAdmin. Normalmente es algo como
tudominio.com:2222. - Busca la sección "Manejo de Cuentas" o "Información del Servidor". El nombre exacto puede variar según la versión de DirectAdmin, pero suele estar en el menú principal o en un icono.
- Dentro de esa sección, busca "Servicios del Sistema" o "Estado de los Servicios".
- Localiza el servicio llamado "MySQL" o "MariaDB" (son lo mismo para nuestros fines). Debería aparecer con un icono verde y la palabra "Running" o "Up".
[TIP]: Si ves que el servicio aparece como "Stopped" o "Down", simplemente haz clic en el botón "Start" o "Restart". ¡A veces es tan sencillo como eso!
Si el servicio se inicia pero vuelve a caerse, es posible que haya un problema más profundo. En ese caso, contacta con tu proveedor de hosting, indicando que el servicio MySQL se detiene solo en tu panel DirectAdmin.
Paso 2: Revisa las Credenciales en el Archivo settings.inc.php
Este es el paso más común y donde la mayoría de los errores se solucionan. PrestaShop guarda la "llave" para abrir la base de datos en un archivo especial. Vamos a revisar que la llave sea la correcta.
-
Accede a tu panel de control de archivos. Desde DirectAdmin, puedes usar el Administrador de Archivos (suele ser un icono de carpeta) o un cliente FTP como FileZilla.
-
Navega hasta la carpeta raíz de tu tienda PrestaShop. Normalmente es
public_htmlopublic_html/nombre-de-tu-tienda. -
Dentro de esa carpeta, busca la carpeta
config/. -
Dentro de
config/, busca el archivosettings.inc.php. Es un archivo de texto. -
Edítalo con cuidado. Haz clic derecho sobre él y selecciona "Editar" o "View/Edit".
-
Busca las siguientes líneas (al principio del archivo):
define('_DB_SERVER_', 'localhost'); define('_DB_NAME_', 'tu_usuario_basededatos'); define('_DB_USER_', 'tu_usuario_basededatos'); define('_DB_PASSWD_', 'tu_contraseña_secreta'); define('_DB_PREFIX_', 'ps_'); -
Ahora, compara estos datos con los que tienes en tu panel DirectAdmin.
_DB_SERVER_: Normalmente eslocalhost. Si tu hosting te ha dado un servidor específico (comomysql.tudominio.com), ponlo aquí._DB_NAME_: Es el nombre de la base de datos. En DirectAdmin, lo creaste en la sección "MySQL Management". Asegúrate de que sea exactamente igual, incluyendo mayúsculas y minúsculas._DB_USER_: Es el usuario que creaste para esa base de datos. Normalmente es el mismo que el nombre de la base de datos, pero no siempre._DB_PASSWD_: La contraseña que pusiste al crear el usuario. ¡Este es el error más común! Si la has olvidado, deberás cambiarla en DirectAdmin y luego actualizar este archivo.
[WARNING]: No copies y pegues contraseñas desde un editor de texto que pueda añadir espacios invisibles. Escribe la contraseña manualmente o usa un editor de código limpio.
- Guarda los cambios y vuelve a cargar tu tienda.
Paso 3: Verifica los Permisos del Usuario de la Base de Datos (DirectAdmin)
A veces, el usuario existe y la contraseña es correcta, pero no tiene permiso para "entrar" a la base de datos desde tu web.
- En tu panel DirectAdmin, busca la sección "MySQL Management".
- Verás una lista de tus bases de datos. Al lado de cada una, suele haber un icono o enlace que dice "Asignar Usuario a Base de Datos" o "Privilegios".
- Haz clic en el nombre de la base de datos que usa PrestaShop.
- Asegúrate de que el usuario que tienes en
settings.inc.phpesté marcado o asignado a esa base de datos. - Marca la opción "Todos los privilegios" o "ALL PRIVILEGES". Esto le da al usuario control total sobre la base de datos, que es lo que necesita PrestaShop.
[INFO]: Si no ves la opción de asignar usuario, es posible que primero tengas que crear el usuario en la sección "Crear Usuario" de MySQL Management y luego asignarlo a la base de datos.
Paso 4: Comprueba el Archivo .htaccess (Redirecciones)
Un archivo .htaccess mal configurado puede causar errores de conexión, aunque parezca mentira. A veces, una redirección mal hecha impide que PrestaShop se comunique con la base de datos.
- En el Administrador de Archivos de DirectAdmin, busca el archivo
.htaccessen la raíz de tu tienda (enpublic_html). Nota: los archivos que empiezan con un punto son ocultos. Activa la opción "Mostrar archivos ocultos" en el panel de archivos. - Haz una copia de seguridad de este archivo (descárgalo o renómbralo a
.htaccess.bak). - Crea un nuevo archivo
.htaccessvacío (o renombra el de backup a.htaccessdespués de borrar el original). - Prueba tu tienda. Si funciona, el problema estaba en el
.htaccessoriginal. Puedes regenerar uno limpio desde el panel de administración de PrestaShop (Parámetros de la tienda > Tráfico y SEO > URL amigables, y guarda sin cambios).
Paso 5: El "Host" de la Base de Datos no es "localhost"
En algunos entornos de hosting compartido o en configuraciones específicas de DirectAdmin, el servidor de base de datos no es localhost. Puede ser una dirección IP o un nombre de servidor.
- Revisa el correo de bienvenida de tu hosting. A menudo, te dan un dato como
mysql.tudominio.comoserver1.mihosting.com. - Si no lo encuentras, contacta con el soporte de tu hosting y pregúntales: "¿Cuál es el hostname del servidor MySQL para mi cuenta?"
- Si te dan una dirección, edita el archivo
settings.inc.phpy cambia_DB_SERVER_de'localhost'a ese valor.
FAQ: Preguntas Frecuentes sobre este Error
Aquí tienes las dudas más comunes que resuelvo a diario.
¿Por qué veo el error después de mover mi tienda a un nuevo hosting?
Es el escenario más típico. Al mover PrestaShop, el archivo settings.inc.php sigue teniendo los datos de la base de datos antigua. Debes actualizarlo con los nuevos datos de tu nuevo panel DirectAdmin.
He cambiado la contraseña en DirectAdmin, ¿qué hago?
Tienes que actualizar el archivo settings.inc.php con la nueva contraseña. Si no lo haces, PrestaShop no podrá conectarse.
¿Puedo arreglarlo sin acceder a DirectAdmin?
No, necesitas acceder al panel para ver el estado de los servicios, gestionar usuarios y bases de datos, y editar archivos de configuración. Si no tienes acceso, contacta con tu proveedor.
He seguido todos los pasos y sigue sin funcionar. ¿Qué hago?
No te desesperes. Puede ser un problema del servidor en sí. Abre un ticket de soporte con tu proveedor de hosting y diles:
- El error exacto que ves.
- Que ya has verificado que el servicio MySQL está corriendo.
- Que has revisado las credenciales en
settings.inc.php. - Que has verificado los permisos en DirectAdmin.
- Pídeles que verifiquen los logs de errores de MySQL para ver si hay un problema más técnico.
¿Es seguro editar el archivo settings.inc.php?
Sí, siempre que tengas cuidado. Haz siempre una copia de seguridad del archivo original antes de modificarlo. Si algo sale mal, puedes subir la copia de seguridad y todo volverá a la normalidad.
¿Qué pasa si borro el archivo settings.inc.php por error?
PrestaShop dejará de funcionar por completo. Deberás restaurarlo desde una copia de seguridad o, si no tienes, reinstalar PrestaShop (lo que borraría tu tienda). ¡Ten mucho cuidado con esto!
Conclusión: No temas al error de conexión
Como has visto, el error de conexión a la base de datos en PrestaShop es un problema mecánico con soluciones muy claras. La mayoría de las veces se soluciona con el Paso 2 (revisar credenciales) o el Paso 3 (permisos en DirectAdmin).
Recuerda siempre:
- Paciencia: Ve paso a paso.
- Copias de seguridad: Antes de tocar archivos importantes, haz una copia.
- Soporte: Si te atas, tu proveedor de hosting está para ayudarte.
Espero que esta guía te haya sido de gran ayuda. Si tienes más dudas, aquí estoy para lo que necesites. ¡Buena suerte con tu tienda!
