🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

FAQ: Errores al conectar base de datos en DirectAdmin

Actualizado el 9 de noviembre de 2025

Introducción: ¿Por qué no puedo conectar mi base de datos en DirectAdmin?

Conectar una base de datos es uno de los pasos fundamentales para que cualquier sitio web o aplicación funcione correctamente. Sin embargo, es muy común encontrarse con errores de conexión, especialmente si estás empezando a administrar tu propio servidor con DirectAdmin. No te preocupes, la mayoría de estos problemas tienen soluciones sencillas que puedes aplicar tú mismo.

En esta FAQ (Preguntas Frecuentes) vamos a desglosar los errores más habituales al conectar una base de datos en DirectAdmin, explicando paso a paso cómo identificarlos y solucionarlos. Tanto si usas MySQL, MariaDB o PostgreSQL, aquí encontrarás respuestas claras y prácticas.


¿Qué necesito saber antes de empezar?

Antes de lanzarte a solucionar errores, es importante que tengas claros tres datos básicos que necesitarás en cada intento de conexión:

  • Nombre de la base de datos: Lo creaste desde el panel de DirectAdmin (ejemplo: usuario_miweb).
  • Usuario de la base de datos: También lo creaste y le asignaste permisos (ejemplo: usuario_admin).
  • Contraseña: La que elegiste al crear el usuario.
  • Host: Normalmente es localhost si tu aplicación web está en el mismo servidor. Si es remoto, será la IP del servidor (ejemplo: 192.168.1.10).

[INFO] Si usas un panel alternativo como Syspanel (antes conocido como HestiaCP), el proceso es similar, pero recuerda que el puerto de acceso es el 2106 y la gestión de bases de datos está en la sección "Bases de Datos".


FAQ: Errores comunes y sus soluciones

1. Error: "Access denied for user 'usuario'@'localhost'"

Este es el error más frecuente. Significa que el usuario y la contraseña no coinciden o que el usuario no tiene permisos para acceder desde ese host.

Posibles causas y soluciones:

  • Contraseña incorrecta: Verifica que la escribes exactamente como la creaste. Un error de mayúsculas/minúsculas es muy común.
  • Usuario no creado correctamente: En DirectAdmin, ve a "MySQL Management" o "PostgreSQL Management" y asegúrate de que el usuario existe y está asignado a la base de datos.
  • Host incorrecto: Si tu aplicación se conecta desde otro servidor, el host no será localhost, sino la IP del servidor de bases de datos.

Solución paso a paso:

  1. Accede a DirectAdmin y ve a "Account Manager" > "MySQL Management".
  2. Revisa la lista de bases de datos y usuarios. Si el usuario no aparece, créalo de nuevo.
  3. Asegúrate de que el usuario tiene todos los permisos (selecciona "All Privileges").
  4. Prueba la conexión desde un script simple en PHP o desde la línea de comandos con mysql -u usuario -p.

[TIP] Para pruebas rápidas, puedes usar un archivo PHP como este:

<?php
$conn = new mysqli("localhost", "usuario", "contraseña", "nombre_bd");
if ($conn->connect_error) {
    die("Error: " . $conn->connect_error);
} else {
    echo "Conexión exitosa";
}
?>

2. Error: "Can't connect to MySQL server on 'localhost' (111)"

Este error indica que el servicio de base de datos no está corriendo o no está escuchando en el puerto esperado.

Causas comunes:

  • MySQL/MariaDB no está iniciado: En DirectAdmin, el servicio puede haberse detenido por un reinicio o un error.
  • Puerto bloqueado: El firewall (iptables, CSF) puede estar bloqueando el puerto 3306 (MySQL) o 5432 (PostgreSQL).
  • Configuración de bind-address: MySQL puede estar configurado para escuchar solo en 127.0.0.1 y no en la IP pública.

Solución paso a paso:

  1. Conéctate por SSH a tu servidor (necesitarás acceso root o de usuario con sudo).
  2. Verifica el estado del servicio:
    • Para MySQL: systemctl status mysqld o service mysql status
    • Para MariaDB: systemctl status mariadb
  3. Si está detenido, inícialo: systemctl start mysqld
  4. Comprueba el puerto: netstat -tlnp | grep 3306. Deberías ver 0.0.0.0:3306 o 127.0.0.1:3306.
  5. Si el firewall bloquea, agrega una regla: iptables -A INPUT -p tcp --dport 3306 -j ACCEPT (para MySQL).

[WARNING] No abras el puerto 3306 a todo el mundo (0.0.0.0/0) por seguridad. Mejor limita el acceso a IPs específicas o usa localhost si tu aplicación está en el mismo servidor.

3. Error: "Unknown database 'nombre_bd'"

Este error es sencillo: la base de datos no existe o el nombre está mal escrito.

Solución:

  • Ve a DirectAdmin > "MySQL Management" y verifica que la base de datos aparezca en la lista.
  • Si no está, créala. Recuerda que en DirectAdmin el nombre suele tener un prefijo con tu usuario (ejemplo: usuario_bd).
  • Revisa que tu archivo de configuración (por ejemplo, wp-config.php en WordPress) tenga el nombre exacto.

4. Error: "Connection refused" o "Timeout"

Esto ocurre cuando el servidor de bases de datos está activo pero no acepta conexiones desde tu origen.

Causas:

  • Host remoto sin acceso: Si tu aplicación está en otro servidor, el host debe ser la IP pública del servidor de bases de datos, no localhost.
  • Firewall del servidor: El puerto puede estar cerrado para conexiones externas.
  • MySQL no configurado para conexiones remotas: Por defecto, MySQL solo escucha en 127.0.0.1.

Solución para conexiones remotas:

  1. Edita el archivo de configuración de MySQL (normalmente /etc/my.cnf o /etc/mysql/my.cnf).
  2. Busca la línea bind-address = 127.0.0.1 y cámbiala a bind-address = 0.0.0.0 o a la IP específica de tu servidor.
  3. Reinicia MySQL: systemctl restart mysqld
  4. Crea un usuario con acceso desde cualquier host o desde la IP de tu aplicación:
    GRANT ALL PRIVILEGES ON nombre_bd.* TO 'usuario'@'%' IDENTIFIED BY 'contraseña';
    FLUSH PRIVILEGES;
    

[INFO] El símbolo % significa "cualquier host". Para mayor seguridad, especifica la IP de tu aplicación: 'usuario'@'192.168.1.100'.

5. Error: "Too many connections"

Este error aparece cuando se supera el límite de conexiones simultáneas permitidas por MySQL.

Solución:

  • Aumenta el límite en el archivo de configuración de MySQL (max_connections). Por ejemplo, cámbialo a 500.
  • Reinicia MySQL.
  • Optimiza tu aplicación para que cierre las conexiones después de usarlas.

6. Error al conectar desde PHPMyAdmin o Adminer

A veces, las herramientas gráficas como PHPMyAdmin dan errores de conexión aunque la base de datos funcione bien.

Causas comunes:

  • Sesión caducada: Cierra sesión y vuelve a iniciar.
  • Usuario sin permisos para acceder desde PHPMyAdmin: Asegúrate de que el usuario tenga permisos sobre la base de datos.
  • Problemas de cookies o caché del navegador: Limpia la caché o prueba en otro navegador.

Solución rápida:

  1. Desde DirectAdmin, ve a "PHPMyAdmin" (o "phpPgAdmin" para PostgreSQL).
  2. Inicia sesión con el usuario y contraseña de la base de datos (no con el de DirectAdmin).
  3. Si no funciona, verifica que el usuario tenga permisos completos desde "MySQL Management".

Preguntas frecuentes adicionales

¿Cómo sé si mi base de datos está funcionando?

Puedes hacer una prueba rápida desde la línea de comandos SSH:

mysqladmin -u root -p status

Si responde con información, el servicio está activo.

¿Qué hago si olvidé la contraseña de la base de datos?

En DirectAdmin, puedes cambiar la contraseña desde "MySQL Management" > "Edit User". También puedes hacerlo desde la línea de comandos:

ALTER USER 'usuario'@'localhost' IDENTIFIED BY 'nueva_contraseña';

¿Puedo conectar mi base de datos desde una aplicación remota?

Sí, pero debes:

  1. Configurar MySQL para aceptar conexiones externas (cambiar bind-address).
  2. Crear un usuario con acceso desde la IP remota.
  3. Abrir el puerto 3306 en el firewall.
  4. Usar la IP pública del servidor como host en tu aplicación.

[WARNING] Las conexiones remotas sin SSL son inseguras. Si es posible, usa una VPN o túneles SSH.

¿Qué diferencia hay entre MySQL y MariaDB en DirectAdmin?

Ambos son compatibles, pero MariaDB es un fork de MySQL con mejor rendimiento y características adicionales. En DirectAdmin, puedes elegir cuál instalar. Los comandos y la gestión son prácticamente idénticos.

¿Qué hago si uso Syspanel (HestiaCP) en lugar de DirectAdmin?

El proceso es muy similar. En Syspanel, el puerto de acceso es el 2106 y la gestión de bases de datos está en la sección "Bases de Datos". Los errores y soluciones son los mismos, solo cambia la interfaz gráfica.


Consejos finales para evitar errores de conexión

  1. Documenta siempre tus credenciales: Guarda el nombre de la base de datos, usuario y contraseña en un lugar seguro.
  2. Usa contraseñas fuertes: Evita contraseñas como "123456" o "admin".
  3. Prueba la conexión localmente antes de hacerla remota: Usa localhost primero.
  4. Mantén actualizado tu software: Tanto DirectAdmin como MySQL/MariaDB tienen parches de seguridad y estabilidad.
  5. Revisa los logs: Los logs de MySQL están en /var/log/mysql/error.log y te darán pistas precisas del error.

[TIP] Si después de todo sigues sin poder conectar, contacta a tu proveedor de hosting o soporte técnico. A veces el problema está en la configuración del servidor que solo un administrador puede cambiar.


Conclusión

Los errores al conectar una base de datos en DirectAdmin pueden parecer frustrantes, pero como has visto, la mayoría tienen soluciones claras y sencillas. Desde verificar credenciales hasta ajustar configuraciones de red, con esta FAQ tienes las herramientas para resolverlos tú mismo.

Recuerda que la paciencia y el método son tus mejores aliados. Sigue los pasos uno a uno, y si algo no funciona, no dudes en buscar ayuda en foros o con tu soporte técnico. ¡Buena suerte con tu proyecto web!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel