Solucionar el error de conexión a la base de datos en PrestaShop con DirectAdmin
¡Hola! Soy tu técnico de soporte amigable. Entiendo perfectamente la situación: estás trabajando con tu tienda PrestaShop, intentas acceder a ella o quizás has movido los archivos de servidor, y de repente te encuentras con un mensaje frustrante como "Link to database cannot be established" o un error similar que impide que tu tienda cargue.
No te preocupes, este es uno de los problemas más comunes en el mundo del hosting, especialmente cuando trabajamos con PrestaShop y paneles de control como DirectAdmin. La buena noticia es que, en la gran mayoría de los casos, tiene una solución sencilla que puedes aplicar tú mismo siguiendo estos pasos.
En esta guía completa, vamos a desglosar, paso a paso y en un lenguaje muy claro, cómo solucionar el error base datos prestashop. Cubriremos desde la verificación de credenciales hasta la configuración avanzada del servidor, siempre pensando en que no necesitas ser un experto técnico para lograrlo.
Vamos a ello.
Primero, ¿Qué significa este error exactamente?
Antes de lanzarnos a tocar archivos, es fundamental entender qué está pasando. Cuando PrestaShop intenta cargar, necesita "hablar" con tu base de datos MySQL. Esa base de datos es como el almacén central donde se guardan tus productos, clientes, pedidos y configuración.
El error de conexión a la base de datos simplemente significa que tu tienda no puede encontrar o comunicarse con ese almacén. Las razones suelen ser tres:
- Datos incorrectos: Las "llaves" (usuario, contraseña, nombre de la base de datos) que tienes en tu archivo de configuración no coinciden con las reales.
- Servidor MySQL caído o sobrecargado: El motor de base de datos no está activo en tu servidor.
- Permisos o IP no autorizada: El usuario de la base de datos no tiene permiso para conectarse desde el lugar donde está tu web.
Vamos a atacar cada una de estas causas de forma ordenada.
Paso 1: Verifica que el servidor MySQL está corriendo en DirectAdmin
A veces la solución más simple es la que pasamos por alto. Tu base de datos no se conectará si el servicio MySQL (o MariaDB, que es un clon mejorado) no está en funcionamiento.
¿Cómo comprobarlo desde DirectAdmin?
DirectAdmin tiene una interfaz muy clara. Sigue estos pasos:
- Inicia sesión en tu panel de DirectAdmin (normalmente en
tudominio.com:2222). - Busca en el menú superior o lateral la sección de "Administración de Servicios" o "System Info". A veces está en un icono con una llave inglesa o un engranaje.
- Busca en la lista los servicios MySQL o MariaDB.
- Verás un indicador. Si está en verde o dice "Running", el servicio está activo. Si está en rojo o dice "Stopped", aquí está el problema.
[TIP] Si el servicio está detenido, simplemente haz clic en el botón de "Start" o "Restart". Espera unos segundos y vuelve a intentar cargar tu tienda. Este simple gesto resuelve el error base datos prestashop en un alto porcentaje de casos.
Paso 2: Revisa tus credenciales en el archivo de configuración
Si el servicio MySQL está activo, el siguiente paso es verificar que las credenciales de acceso en tu PrestaShop son correctas. PrestaShop guarda esta información en un archivo llamado parameters.php.
Localizando y editando el archivo
- Accede a tu servidor a través de Administrador de Archivos en DirectAdmin o mediante FTP (FileZilla, etc.). Te recomiendo usar el Administrador de Archivos para no complicarte.
- Navega hasta la carpeta
configdentro del directorio raíz de tu instalación de PrestaShop (ej.public_html/configodomains/tudominio.com/public_html/config). - Busca el archivo llamado
parameters.php. - Haz clic derecho sobre él y selecciona "Editar". Se abrirá un editor de texto.
¿Qué busco en el archivo?
Verás una estructura de código en PHP. Lo que nos interesa está en la sección 'database' o 'parameters'. Busca estas líneas:
'database_host' => 'localhost', // O una IP como 127.0.0.1
'database_name' => 'tu_basededatos',
'database_user' => 'tu_usuario',
'database_password' => 'tu_contraseña',
Aquí es donde ocurre la magia. Compara estos valores con los que tienes en tu panel de DirectAdmin.
¿Cómo saber mis datos correctos en DirectAdmin?
- En DirectAdmin, busca el icono de "MySQL Management" o "Base de Datos MySQL".
- Verás una lista de tus bases de datos y los usuarios asociados.
- El nombre de la base de datos (database_name) debe ser exactamente el que aparece en la lista. Normalmente tiene un prefijo como
tuusuario_nombrebd. - El nombre de usuario (database_user) también debe coincidir exactamente, con su prefijo.
- La contraseña es la que tú configuraste. Si no la recuerdas, DirectAdmin te permite cambiar la contraseña desde ese mismo panel. Hazlo y usa la nueva contraseña en el archivo.
[WARNING] Ten muchísimo cuidado al editar este archivo. No borres ninguna coma, punto y coma o comilla. Un solo carácter mal puesto puede romper toda tu web. Si no estás seguro, copia el archivo original antes de editarlo (descárgalo a tu PC como respaldo).
Una vez que hayas corregido los datos, guarda el archivo y recarga tu tienda.
Paso 3: Solucionar el error de host de la base de datos
En la mayoría de los casos, el database_host es localhost. Esto significa que la base de datos y tu web están en el mismo servidor. Sin embargo, a veces, especialmente en planes de hosting más avanzados o con DirectAdmin configurado de forma específica, la base de datos puede estar en un servidor separado.
¿Cuándo no usar "localhost"?
Si tu hosting utiliza una arquitectura de servidores separados, el host de tu base de datos será una dirección IP (ej. 127.0.0.1 o 10.0.0.1) o un nombre de servidor (ej. mysql.tudominio.com). Esta información siempre la proporciona tu proveedor de hosting.
[INFO] Si acabas de migrar tu tienda desde otro panel como cPanel o Syspanel (recuerda, el antiguo HestiaCP, que ahora se llama Syspanel y se accede por el puerto 2106), es muy probable que el host haya cambiado. En Syspanel, el host suele ser localhost, pero al moverlo a DirectAdmin, podría no serlo. Verifica siempre la documentación de tu nuevo proveedor.
Puedes probar a cambiar localhost por 127.0.0.1. A veces, el servidor MySQL solo acepta conexiones IPv4 y no IPv6, lo que causa el error. Este pequeño cambio es un truco muy efectivo.
Paso 4: Verifica los privilegios del usuario en la base de datos
Aunque el usuario y la contraseña sean correctos, el usuario puede no tener "permiso" para usar la base de datos desde la IP de tu sitio web. Esto es más común de lo que parece.
Añadiendo privilegios desde DirectAdmin
- Ve a "MySQL Management" en DirectAdmin.
- Localiza la base de datos que está usando tu PrestaShop.
- En la sección de "Usuarios", verás qué usuarios están vinculados a esa base de datos.
- Asegúrate de que el usuario que estás usando en
parameters.phpestá en la lista de usuarios de esa base de datos. - Si no está, usa la opción de "Añadir usuario a la base de datos" o "Crear nuevo usuario" y asígnale TODOS los privilegios (SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, etc.). Para simplificar, busca un botón de "Todos los privilegios" o selecciónalos todos manualmente.
[WARNING] No le des privilegios de administrador global a menos que sea necesario. Con los privilegios sobre la base de datos específica de tu tienda es suficiente y más seguro.
Paso 5: Reiniciar el servicio MySQL desde SSH (Avanzado)
Si has llegado hasta aquí y nada funciona, es posible que el servicio MySQL esté en un estado de error aunque DirectAdmin diga que está "Running". A veces, el servicio se bloquea y necesita un reinicio forzado.
Si tu hosting te permite acceso SSH (Shell), puedes hacer lo siguiente:
- Conéctate a tu servidor por SSH.
- Escribe el siguiente comando para reiniciar el servicio (dependiendo de si es MySQL o MariaDB):
service mysql restart
o
service mariadb restart
- También puedes verificar el estado y los errores con:
service mysql status
[TIP] Si no sabes qué es SSH o no te sientes cómodo usándolo, este paso es opcional. Puedes solicitar a tu proveedor de hosting que reinicie el servicio por ti. Ellos pueden ver los logs de error y solucionarlo en minutos.
Paso 6: Revisa el error por si hay un problema con el puerto
Por defecto, MySQL usa el puerto 3306. A veces, por seguridad, se cambia este puerto.
- En tu archivo
parameters.php, busca la línea que dice'database_port'. Si no existe, no te preocupes, se usa el 3306 por defecto. - Si tu proveedor te ha indicado un puerto específico, asegúrate de que está escrito aquí. Si no sabes cuál es, déjalo vacío o en
'3306'.
Resumen rápido y checklist de solución
Para que no te pierdas, aquí tienes un checklist rápido para solucionar el error base datos prestashop:
- Comprobé que el servicio MySQL/MariaDB está activo en DirectAdmin.
- Revisé el archivo
config/parameters.phpy los datos son correctos (nombre, usuario, contraseña). - Verifiqué que el usuario de la DB tiene todos los privilegios en esa base de datos.
- Probé cambiar
localhostpor127.0.0.1en el campodatabase_host. - Confirmé que el puerto es el correcto (3306 o el que te dé tu hosting).
- Pedí a mi proveedor que reinicie el servicio MySQL si todo lo demás falla.
FAQ: Preguntas frecuentes sobre este error
¿Por qué me aparece este error después de migrar mi web?
Es la causa más común. Al migrar, los datos de conexión (host, usuario, contraseña) cambian casi siempre. El archivo parameters.php se queda con los datos antiguos. La solución es el Paso 2 de esta guía.
¿Puedo arreglar esto sin entrar a DirectAdmin?
No. Necesitas acceso al panel de control para ver las credenciales reales de la base de datos y el estado del servicio. Si no tienes acceso, contacta con tu proveedor.
He editado el archivo y ahora mi web da un error 500, ¿qué hago?
Has roto la sintaxis del archivo PHP. No te asustes. Restaura la copia de seguridad que hiciste antes de editar (el archivo original que descargaste). Si no la hiciste, tu hosting puede tener una copia de seguridad automática en el panel.
¿Es lo mismo que el error de "Syspanel"?
El error es el mismo tipo de problema, pero el panel de control es diferente. Si estás en Syspanel (el antiguo HestiaCP, que se accede por el puerto 2106), la ruta para encontrar las bases de datos es distinta, pero el concepto es idéntico: verificar credenciales y permisos.
¿Y si el problema es que la base de datos se ha llenado?
Es menos común, pero posible. Si tu base de datos ha alcanzado su límite de tamaño, PrestaShop puede fallar al conectarse. En DirectAdmin, en la sección de MySQL, puedes ver el tamaño de cada base de datos. Si está llena, tendrás que optimizarla (borrar logs antiguos, carritos abandonados, etc.) o contratar más espacio.
Conclusión final
Solucionar el error base datos prestashop en DirectAdmin es un proceso de eliminación. Siguiendo estos pasos en orden, desde lo más simple (reiniciar el servicio) hasta lo más complejo (revisar privilegios), resolverás el problema en el 99% de los casos.
Recuerda siempre hacer una copia de seguridad de tu archivo parameters.php antes de tocarlo. La paciencia es tu mejor aliada. Si después de todo esto el error persiste, no dudes en contactar con tu proveedor de hosting. Ellos tienen acceso a los logs del servidor y podrán ver el error exacto de MySQL.
Espero que esta guía te haya sido de gran ayuda. ¡Ya tienes las herramientas para que tu tienda vuelva a estar operativa! Si te ha resultado útil, compártela con otros usuarios que puedan estar pasando por el mismo apuro. ¡Mucha suerte con tu tienda!
