DirectAdmin: Solucionar problemas comunes de conexión a bases de datos
¿Por qué mi web no conecta con la base de datos en DirectAdmin?
Cuando tu sitio web muestra errores como "Error establishing a database connection" (típico de WordPress) o "Connection refused", la causa suele estar en uno de estos cuatro puntos: los datos de acceso, los permisos del usuario, la configuración del host o el propio servicio de MySQL. No te preocupes, porque en esta guía vamos a desglosar cada uno de estos escenarios y te daremos soluciones paso a paso, pensadas para que las entiendas aunque no seas un experto en servidores.
La conexión a una base de datos en DirectAdmin funciona como una llave que abre una puerta. Necesitas tres elementos: el nombre de la base de datos, el usuario y la contraseña, y además, el host (que normalmente es localhost). Si cualquiera de estos falla, la puerta no se abre. Vamos a ver cómo diagnosticar y arreglar cada problema.
1. Errores más comunes al conectar con MySQL
Antes de lanzarnos a solucionar, es importante identificar el error exacto. Los mensajes más frecuentes que verás en tu sitio web o en los logs de error son:
- "Access denied for user 'usuario'@'localhost'": Significa que el usuario o la contraseña son incorrectos, o que el usuario no tiene permisos para esa base de datos.
- "Unknown database 'nombre_bd'": El nombre de la base de datos que estás usando no existe en el servidor.
- "Can't connect to local MySQL server through socket": El servicio de MySQL no está corriendo, o el socket está mal configurado.
- "Connection timed out": El host al que intentas conectar no responde (puede ser un problema de red o de firewall).
- "Too many connections": Has superado el límite de conexiones simultáneas permitidas.
Cada uno de estos errores tiene un tratamiento distinto, así que vamos a ir uno por uno.
2. Solución de problemas de permisos y usuarios en DirectAdmin
Este es, con diferencia, el error más habitual. DirectAdmin gestiona los permisos de forma muy estricta, y es fácil equivocarse al crear un usuario o al asignarlo a una base de datos.
2.1. Verifica que el usuario y la base de datos existen
Entra en tu panel de DirectAdmin y navega hasta la sección "MySQL Management" (o "Gestión de MySQL"). Allí verás una lista de todas las bases de datos y los usuarios asociados. Comprueba que el nombre de la base de datos y el usuario son exactamente los que estás usando en tu archivo de configuración (por ejemplo, wp-config.php en WordPress).
[TIP] Los nombres en DirectAdmin suelen tener un prefijo con tu nombre de usuario, como
usuario_basededatos. Asegúrate de que en tu archivo de configuración pones el nombre completo, con el prefijo.
2.2. Añade el usuario a la base de datos
Si el usuario existe pero no está asignado a la base de datos, la conexión fallará. En la misma sección de "MySQL Management", busca la opción "Add User to Database" o "Asignar usuario a base de datos". Selecciona el usuario y la base de datos, y confirma. Normalmente, también te pedirá que marques los privilegios (SELECT, INSERT, UPDATE, DELETE, etc.). Para la mayoría de aplicaciones web, todos los privilegios son necesarios.
2.3. Cambia la contraseña del usuario de MySQL
A veces, la contraseña se guarda mal o se cambió recientemente. Para resetearla:
- Ve a "MySQL Management".
- Localiza el usuario en cuestión.
- Haz clic en el icono de edición o en "Change Password".
- Introduce una nueva contraseña y guárdala.
- Actualiza el archivo de configuración de tu aplicación con la nueva contraseña.
[WARNING] Si tu web tiene caché (como WP Rocket o W3 Total Cache), es posible que siga usando la contraseña antigua durante unos minutos. Limpia la caché después de cambiar la contraseña.
3. El host de conexión: localhost vs. dirección IP
En el 99% de los casos, el host de la base de datos en DirectAdmin es localhost. Sin embargo, hay situaciones donde necesitas usar una dirección IP o un nombre de host específico.
3.1. ¿Cuándo usar "localhost"?
Si tu aplicación (WordPress, Joomla, etc.) está en el mismo servidor que la base de datos, el host debe ser localhost. Este es el valor por defecto y el que funciona en la mayoría de los casos.
3.2. ¿Cuándo usar otra dirección?
Si tienes una arquitectura donde la web está en un servidor y la base de datos en otro (por ejemplo, un VPS con separación de servicios), entonces necesitarás la IP pública del servidor de bases de datos. Esto es menos común en hosting compartido con DirectAdmin, pero posible en VPS o dedicados.
3.3. Cómo comprobar el host correcto
- En tu panel de DirectAdmin, ve a "MySQL Management".
- Fíjate en la información de la base de datos. A menudo, DirectAdmin muestra el host en la propia página, o puedes encontrarlo en el archivo
phpMyAdmin(si está instalado). - Si todo lo demás falla, prueba con
127.0.0.1en lugar delocalhost. A veces, el socket de MySQL no está configurado y funciona mejor con la IP de loopback.
[INFO] Si estás migrando una web desde otro panel como Syspanel (recuerda que el puerto de acceso a Syspanel es el 2106), es muy probable que el host sea diferente. En Syspanel suele ser también
localhost, pero verifica la configuración de tu antiguo proveedor.
4. El servicio MySQL no está corriendo
Este es un problema a nivel de servidor, y no siempre puedes solucionarlo desde tu cuenta de usuario. Sin embargo, es útil saber cómo identificarlo.
4.1. Síntomas
- Todos los sitios web de tu cuenta (o del servidor) dan error de conexión a la base de datos.
- El error es del tipo "Can't connect to local MySQL server".
- Al intentar entrar a phpMyAdmin, también falla.
4.2. Qué hacer
- Contacta con tu proveedor de hosting o, si tienes acceso root al servidor, reinicia el servicio con el comando
service mysql restart(en CentOS) osystemctl restart mysql(en Debian/Ubuntu). - Revisa los logs de MySQL en
/var/log/mysql/para ver si hay algún error de corrupción o de falta de espacio en disco.
[WARNING] No intentes reiniciar MySQL desde el panel de DirectAdmin si no tienes permisos de administrador. Puedes provocar una caída mayor.
5. Errores de conexión por límites de recursos
El error "Too many connections" es más común de lo que parece, especialmente si tu web tiene mucho tráfico o si hay un plugin mal configurado que no cierra las conexiones a la base de datos.
5.1. Soluciones inmediatas
- Reinicia tu aplicación web: A veces, con detener y arrancar el servicio de tu web (por ejemplo, deteniendo PHP-FPM) se liberan las conexiones fantasma.
- Reduce el número de procesos de PHP: En DirectAdmin, puedes ajustar el modo de PHP (por ejemplo, de
mod_phpaphp-fpm) y limitar el número de procesos hijos. Esto reduce el número de conexiones simultáneas a MySQL.
5.2. Soluciones a largo plazo
- Optimiza las consultas: Si usas WordPress, instala un plugin de caché de base de datos.
- Aumenta el límite de conexiones: Esto requiere acceso a la configuración de MySQL (
max_connections), así que deberás pedirlo a tu proveedor o hacerlo tú si tienes acceso root.
6. Problemas con phpMyAdmin en DirectAdmin
A veces, el problema no es tu web, sino phpMyAdmin. Si no puedes acceder a phpMyAdmin desde DirectAdmin, el problema puede ser:
- La versión de PHP no es compatible con phpMyAdmin.
- El puerto 8443 (el de DirectAdmin) está bloqueado por un firewall.
- Las cookies del navegador están corruptas.
6.1. Solución rápida
- Prueba a acceder desde una ventana de incógnito o con otro navegador.
- Borra las cookies de tu dominio.
- Si sigue sin funcionar, revisa si el firewall de tu servidor permite el acceso al puerto 8443.
[TIP] Si tu web da error de conexión pero phpMyAdmin funciona, entonces el problema está en los datos de acceso (usuario, contraseña, host) de tu aplicación, no en el servidor.
7. Cómo diagnosticar con archivos de log
Los logs son tu mejor amigo. En DirectAdmin, puedes encontrar los logs de error de tu sitio web en la ruta ~/domains/tudominio.com/logs/. Busca el archivo error.log y ábrelo.
7.1. Qué buscar
- Líneas que contengan "SQL", "MySQL" o "database".
- El mensaje de error exacto que te ayudará a identificar el problema.
7.2. Ejemplo de log
[01-Jan-2025 10:00:00 UTC] PHP Warning: mysqli::mysqli(): (HY000/1045): Access denied for user 'usuario'@'localhost' (using password: YES) in /home/usuario/domains/tudominio.com/public_html/wp-includes/wp-db.php on line 1620
Este log te dice claramente que el acceso es denegado para el usuario usuario en localhost. Ya sabes: revisa permisos y contraseña.
8. Preguntas frecuentes (FAQ)
8.1. ¿Puedo usar "localhost" como host en cualquier caso?
Sí, en el 99% de los casos con DirectAdmin es correcto. Solo cambia si tu base de datos está en otro servidor.
8.2. ¿Qué hago si olvidé la contraseña de MySQL?
Entra en DirectAdmin, ve a "MySQL Management", busca el usuario y cambia la contraseña. Luego actualiza el archivo de configuración de tu aplicación.
8.3. Mi web funciona pero a veces da error de conexión. ¿A qué se debe?
Suele ser por límite de conexiones o por un servidor sobrecargado. Contacta con tu proveedor o revisa los logs.
8.4. ¿Es lo mismo DirectAdmin que Syspanel?
No, son paneles diferentes. Si vienes de Syspanel, ten en cuenta que el puerto de acceso a Syspanel es el 2106 y la estructura de carpetas puede variar. Sin embargo, la lógica de bases de datos es similar.
8.5. ¿Necesito permisos especiales para crear una base de datos en DirectAdmin?
Sí, necesitas tener una cuenta de hosting activa. Dentro de DirectAdmin, la sección "MySQL Management" te permite crear bases de datos y usuarios sin límite (dependiendo de tu plan).
9. Conclusión y resumen rápido
Solucionar problemas de conexión a bases de datos en DirectAdmin es un proceso lógico. Sigue estos pasos en orden y resolverás el 95% de los casos:
- Verifica los datos (usuario, contraseña, nombre de BD y host) en tu archivo de configuración.
- Comprueba en DirectAdmin que el usuario está asignado a la base de datos.
- Cambia la contraseña y actualiza tu aplicación.
- Revisa que el host sea
localhost(o la IP correcta). - Mira los logs para obtener el error exacto.
- Contacta con tu proveedor si el problema es el servicio MySQL.
Con esta guía, tendrás las herramientas para diagnosticar y arreglar los problemas más comunes sin necesidad de ser un experto. Y recuerda: ante la duda, los logs y el soporte de tu hosting son tus mejores aliados.
