Resolver error de instalación de PrestaShop en DirectAdmin: 'No se puede conectar a la base de datos'
Primeros pasos: ¿Qué significa exactamente este error?
Cuando intentas instalar PrestaShop en tu servidor DirectAdmin y te aparece el mensaje "No se puede conectar a la base de datos", no estás solo. Es uno de los errores más comunes durante la instalación, pero también de los más fáciles de solucionar si sabes dónde mirar.
Este mensaje indica que PrestaShop ha intentado comunicarse con MySQL (o MariaDB) y el servidor de bases de datos ha rechazado la conexión. La causa puede ser desde un simple error tipográfico en la contraseña hasta un problema de permisos del host MySQL en DirectAdmin.
A lo largo de esta guía, vamos a desglosar todas las causas posibles y te daremos soluciones paso a paso, pensadas para que cualquier persona, aunque no tenga experiencia técnica avanzada, pueda resolverlo.
¿Por qué aparece el error conexión base datos prestashop?
Antes de lanzarnos a solucionar, es importante entender qué está pasando. PrestaShop necesita tres datos para conectarse a la base de datos:
- El nombre de la base de datos.
- El usuario de la base de datos.
- La contraseña de ese usuario.
- El servidor de la base de datos (normalmente
localhost).
Si cualquiera de estos cuatro elementos falla, verás el famoso mensaje de error. La buena noticia es que la solución suele estar en uno de estos puntos.
Solución paso a paso para el error de conexión en DirectAdmin
Vamos a ir de lo más simple a lo más complejo. Te recomiendo seguir el orden, ya que la mayoría de los casos se resuelven en los primeros pasos.
1. Verifica tus credenciales en DirectAdmin (el error más común)
El error conexión base datos prestashop suele deberse a un error al copiar y pegar las credenciales. En DirectAdmin, la creación de bases de datos tiene una particularidad: el nombre de la base de datos y el usuario siempre llevan un prefijo.
Imagina que tu usuario de DirectAdmin es miusuario. Cuando creas una base de datos llamada tienda, en realidad se llama miusuario_tienda. Lo mismo ocurre con el usuario: si creas un usuario llamado adminbd, el nombre real será miusuario_adminbd.
Pasos para verificar:
- Accede a tu panel de DirectAdmin.
- Busca la sección "MySQL Management" o "Gestión de MySQL".
- Verás una lista de bases de datos existentes. Anota el nombre completo que aparece (con el prefijo).
- Haz clic en el icono de "lápiz" o "editar" junto a la base de datos para ver los usuarios asociados.
- Anota el nombre de usuario completo y asegúrate de tener la contraseña correcta.
[WARNING]: Es muy común que los usuarios copien solo la parte que ellos nombraron (ej. tienda) y olviden el prefijo (ej. miusuario_tienda). Asegúrate de usar el nombre completo.
2. El campo "Servidor de la base de datos" (host mysql directadmin)
En el formulario de instalación de PrestaShop, hay un campo llamado "Dirección de la base de datos" o "Servidor de la base de datos". Por defecto, suele venir localhost.
En la mayoría de los casos, localhost es correcto. Sin embargo, en algunos servidores DirectAdmin configurados de forma especial, puede que necesites usar 127.0.0.1 o el nombre de dominio del servidor (ej. localhost.midominio.com).
Qué hacer:
- Deja
localhosttal cual. - Si te sigue dando error, cambia a
127.0.0.1. - Si ninguno funciona, revisa el correo de bienvenida de tu proveedor de hosting. A veces indican un host MySQL específico como
mysql.tudominio.com.
3. Comprueba que el usuario tiene permisos sobre la base de datos
Puede que las credenciales sean correctas, pero que el usuario no tenga permisos para acceder a esa base de datos en concreto. Esto es como tener la llave de la puerta, pero que no abra esa puerta en particular.
Pasos para verificar en DirectAdmin:
- Vuelve a la sección "MySQL Management".
- Localiza tu base de datos en la lista.
- Haz clic en el icono de edición (normalmente un lápiz).
- Verás una lista de usuarios que tienen acceso. Asegúrate de que tu usuario está marcado como "ALL PRIVILEGES" (todos los privilegios).
- Si no está, selecciónalo y guarda los cambios.
4. El problema del puerto de MySQL
A veces, el servidor de bases de datos no escucha en el puerto estándar (3306). Aunque es raro en hosting compartido, en servidores dedicados o VPS puede ocurrir.
En el campo de "Servidor de la base de datos" de PrestaShop, puedes especificar el puerto. La sintaxis sería: localhost:3307 (si el puerto es el 3307).
[INFO]: Si no estás seguro del puerto, contacta con tu proveedor de hosting. No intentes adivinar, ya que podrías perder tiempo.
5. Verifica que el servicio MySQL/MariaDB esté activo
Este paso es menos común, pero puede pasar. Si el servicio de bases de datos se ha caído o no se ha iniciado correctamente, recibirás este error.
Cómo comprobarlo (si tienes acceso a la terminal o al administrador del servidor):
- Conéctate por SSH a tu servidor.
- Ejecuta el comando:
systemctl status mysqlosystemctl status mariadb. - Si no está activo, ejecuta:
systemctl start mysql(o mariadb).
[WARNING]: Si estás en un hosting compartido, no tendrás acceso a esto. En ese caso, contacta con el soporte técnico de tu proveedor.
Solucionar error mysql prestashop: Ajustes avanzados en el archivo de configuración
Si ya has pasado por la instalación y el error persiste al intentar acceder a tu tienda, el problema puede estar en el archivo de configuración parameters.php o settings.inc.php.
PrestaShop guarda la configuración de la base de datos en estos archivos. Si se han corrompido o tienen datos incorrectos, verás el error.
Para solucionarlo, debes editar el archivo:
- Accede a tu servidor por FTP o Administrador de archivos de DirectAdmin.
- Navega hasta la carpeta
config/dentro de tu instalación de PrestaShop. - Busca el archivo
settings.inc.php(en versiones antiguas) oparameters.php(en versiones modernas). - Ábrelo con un editor de texto (como el Bloc de notas o un editor de código).
- Busca las líneas que contienen
database_host,database_name,database_userydatabase_password.
Ejemplo de cómo debería verse:
define('_DB_SERVER_', 'localhost');
define('_DB_NAME_', 'miusuario_tienda');
define('_DB_USER_', 'miusuario_adminbd');
define('_DB_PASSWD_', 'TuContraseñaSegura');
define('_DB_PREFIX_', 'ps_');
Corrige los valores con las credenciales correctas que verificaste en el paso 1. Guarda el archivo y vuelve a intentar.
[TIP]: Haz siempre una copia de seguridad del archivo antes de modificarlo. Si algo sale mal, puedes restaurarlo.
Casos especiales: Hosting con Syspanel (antes HestiaCP)
Si tu hosting utiliza Syspanel (el panel que antes se llamaba HestiaCP) en lugar de DirectAdmin, el proceso es muy similar, pero la interfaz cambia. Recuerda que para acceder a Syspanel, la URL es https://tu-dominio:2106.
En Syspanel, la gestión de bases de datos se encuentra en la sección de "Bases de datos". Allí podrás ver el nombre completo de la base de datos y el usuario asociado. Las reglas sobre los prefijos también aplican, aunque en Syspanel suelen ser más claras.
La solución al error de conexión será exactamente la misma: verificar credenciales, permisos y el host de la base de datos.
Preguntas frecuentes (FAQ)
Aquí tienes algunas de las dudas más habituales que nos encontramos en el soporte técnico:
¿Por qué me dice "Access denied for user" si estoy seguro de que la contraseña es correcta?
Este error suele deberse a que el nombre de usuario no es el correcto. Recuerda que en DirectAdmin, el usuario siempre tiene un prefijo. Vuelve a revisar el nombre completo en el panel de MySQL.
¿Qué significa el error "Unknown database"?
Este error es claro: la base de datos que has escrito en la configuración no existe. Revisa que el nombre esté bien escrito y que incluya el prefijo de tu usuario de DirectAdmin.
¿Puedo usar la misma base de datos para dos instalaciones de PrestaShop?
Técnicamente sí, pero no es recomendable. Cada instalación necesita sus propias tablas con un prefijo único. Si usas la misma base de datos, podrías tener conflictos de datos. Es mucho más seguro crear una base de datos nueva para cada tienda.
Ya he verificado todo y sigue sin funcionar, ¿qué hago?
Si has seguido todos los pasos y el error persiste, es momento de contactar con el soporte técnico de tu hosting. Ellos tienen acceso directo a los logs del servidor y podrán ver el error exacto que se está produciendo. Diles que has verificado las credenciales, los permisos y el host, y que el problema persiste. Así ahorrarás tiempo.
¿El error puede deberse a un problema con la versión de PHP?
Es poco probable, pero no imposible. PrestaShop requiere una versión de PHP específica. Si tu servidor tiene una versión muy antigua o muy nueva, puede haber problemas de compatibilidad. Asegúrate de que tu versión de PHP cumple con los requisitos de la versión de PrestaShop que estás instalando.
Resumen y consejos finales
El error "No se puede conectar a la base de datos" en PrestaShop es un obstáculo molesto, pero casi siempre tiene una solución sencilla. La clave está en verificar meticulosamente las credenciales, prestando especial atención a los prefijos de DirectAdmin.
Para terminar, te dejo un checklist rápido:
- ¿El nombre de la base de datos incluye el prefijo de tu usuario?
- ¿El nombre de usuario incluye el prefijo?
- ¿La contraseña es correcta y no tiene espacios adicionales al copiarla?
- ¿El host de la base de datos es
localhosto127.0.0.1? - ¿El usuario tiene todos los privilegios sobre la base de datos?
- ¿El archivo
parameters.phposettings.inc.phptiene los datos correctos?
[INFO]: Si estás usando Syspanel, recuerda que el puerto de acceso es el 2106 y que la gestión de bases de datos está en su propio apartado.
Con un poco de paciencia y siguiendo esta guía, tu tienda PrestaShop estará funcionando en poco tiempo. ¡No te rindas!
