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

Solucionar error de conexión MySQL en DirectAdmin

Actualizado el 18 de junio de 2026

Si estás leyendo esto, probablemente te has topado con el temido mensaje de “Error de conexión MySQL” en tu panel de DirectAdmin. No te preocupes, es uno de los problemas más comunes y, por suerte, también de los más fáciles de solucionar. En esta guía completa, paso a paso, te explicaré las causas más frecuentes y cómo resolverlas para que tu web o aplicación vuelva a funcionar en cuestión de minutos.


¿Por qué aparece el error de conexión MySQL en DirectAdmin?

El error de conexión MySQL puede aparecer por muchas razones, pero las más habituales son:

  • Credenciales incorrectas: El usuario, la contraseña o el nombre de la base de datos no coinciden con los que tiene configurados tu aplicación.
  • Servicio MySQL detenido: El motor de bases de datos no está corriendo en el servidor.
  • Sobrecarga del servidor: Demasiadas conexiones simultáneas o recursos insuficientes.
  • Firewall o permisos: Bloqueo de IP o usuario sin permisos para conectarse desde el host remoto.
  • Archivos de configuración dañados: Problemas en los archivos de configuración de MySQL o de DirectAdmin.

Vamos a revisar cada una de estas causas y a solucionarlas paso a paso.


Paso 1: Verifica que el servicio MySQL esté activo

Lo primero es comprobar que el motor de bases de datos esté funcionando. Si MySQL está detenido, ninguna aplicación podrá conectarse.

Desde DirectAdmin

  1. Inicia sesión en tu panel de DirectAdmin como administrador o usuario con permisos de root.
  2. Ve a Administración del servidor > Servicios del sistema.
  3. Busca MySQL o MariaDB (depende de la versión que uses) y verifica que el estado sea “Running” (en ejecución).
  4. Si está detenido, haz clic en “Iniciar” o “Reiniciar”.

Desde la terminal (SSH)

Si tienes acceso SSH, puedes usar los siguientes comandos:

# Para sistemas con systemd (la mayoría de servidores modernos)
systemctl status mysqld
# o
systemctl status mariadb

# Para sistemas antiguos (SysV init)
service mysql status

Si el servicio no está activo, inícialo con:

systemctl start mysqld
# o
service mysql start

[INFO] Si el servicio no arranca, revisa los logs de MySQL en /var/log/mysqld.log o /var/log/mariadb/mariadb.log para identificar la causa.


Paso 2: Revisa las credenciales de la base de datos

El error más común es tener mal escritas las credenciales. Sigue estos pasos para verificarlas:

En DirectAdmin

  1. Ve a Cuentas de usuario > Base de datos MySQL.
  2. Anota el nombre de la base de datos, el usuario y la contraseña exactamente como aparecen. Recuerda que DirectAdmin suele añadir un prefijo (por ejemplo, usuario_basededatos).
  3. En tu aplicación (WordPress, Joomla, etc.), busca el archivo de configuración de la base de datos:
    • WordPress: wp-config.php
    • Joomla: configuration.php
    • Laravel: .env
  4. Compara los valores de DB_NAME, DB_USER, DB_PASSWORD y DB_HOST con los de DirectAdmin.

[WARNING] Asegúrate de que el campo DB_HOST sea localhost o 127.0.0.1 si tu web y la base de datos están en el mismo servidor. Si usas un host remoto, pon la IP del servidor de MySQL.

Prueba la conexión manualmente

Desde la terminal, puedes probar la conexión con:

mysql -u usuario -p -h localhost nombre_base_datos

Te pedirá la contraseña. Si no puedes conectar, el error te indicará si es por credenciales, permisos o porque el servicio no responde.


Paso 3: Comprueba los permisos y el host de conexión

A veces, aunque las credenciales sean correctas, el usuario de MySQL no tiene permiso para conectarse desde el host donde está tu aplicación.

Cómo solucionarlo

  1. Conéctate a MySQL como root (desde la terminal o phpMyAdmin).
  2. Ejecuta el siguiente comando para ver los permisos del usuario:
SELECT user, host FROM mysql.user WHERE user = 'tu_usuario';

Si el host es localhost, solo podrá conectarse desde el mismo servidor. Si tu aplicación está en otro servidor (por ejemplo, un hosting compartido con bases de datos externas), necesitas cambiar el host a % (cualquier host) o a la IP específica.

Para cambiarlo:

GRANT ALL PRIVILEGES ON tu_base_datos.* TO 'tu_usuario'@'%' IDENTIFIED BY 'tu_contraseña';
FLUSH PRIVILEGES;

[TIP] Si no sabes qué host usar, lo más seguro es localhost para aplicaciones en el mismo servidor. Para aplicaciones externas, usa la IP concreta del servidor de la web.


Paso 4: Verifica el límite de conexiones y los recursos del servidor

MySQL tiene un límite de conexiones simultáneas. Si tu web recibe mucho tráfico o hay muchas aplicaciones conectadas, podrías estar alcanzando ese límite.

Cómo comprobarlo

  1. Conéctate a MySQL como root.
  2. Ejecuta:
SHOW VARIABLES LIKE 'max_connections';

El valor por defecto suele ser 150 o 151. Si ves que se está alcanzando, puedes aumentarlo temporalmente:

SET GLOBAL max_connections = 500;

Para que sea permanente, edita el archivo de configuración de MySQL (/etc/my.cnf o /etc/mysql/my.cnf) y añade o modifica la línea:

max_connections = 500

Luego reinicia el servicio:

systemctl restart mysqld

[WARNING] No subas este valor demasiado, ya que cada conexión consume memoria. Un valor de 500 es razonable para un servidor con 4 GB de RAM.

Revisa también la carga del servidor

Si el servidor está sobrecargado, MySQL puede rechazar conexiones. Usa comandos como top, htop o free -m para ver el uso de CPU y RAM. Si ves que la memoria está al 90% o más, considera optimizar tu web o contratar más recursos.


Paso 5: Revisa el firewall y los puertos

El firewall del servidor puede estar bloqueando el puerto de MySQL (por defecto 3306). Esto es común si tienes una base de datos remota.

Cómo verificarlo

  1. Desde la terminal, comprueba si el puerto está abierto:
netstat -tulpn | grep 3306

Deberías ver una línea con LISTEN. Si no aparece, el servicio no está escuchando.

  1. Revisa las reglas del firewall:
# Si usas iptables
iptables -L -n | grep 3306

# Si usas firewalld (CentOS 7+)
firewall-cmd --list-all

# Si usas UFW (Ubuntu)
ufw status

Si ves que el puerto está bloqueado, agrega una regla para permitirlo:

# Para firewalld
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload

# Para UFW
ufw allow 3306/tcp

[INFO] Si tu base de datos está en el mismo servidor que la web, no es necesario abrir el puerto 3306 al exterior. Basta con que el servicio escuche en localhost.


Paso 6: Verifica los logs de MySQL para errores específicos

Si los pasos anteriores no resuelven el problema, los logs de MySQL te darán pistas precisas.

Dónde encontrarlos

  • DirectAdmin: Ve a Administración del servidor > Logs del sistema y busca el archivo mysqld.log o error.log.
  • Terminal: Normalmente en /var/log/mysqld.log o /var/log/mariadb/mariadb.log.

Busca mensajes como:

  • Can't connect to MySQL server on 'localhost' (111) → El servicio no está corriendo o el puerto está bloqueado.
  • Access denied for user 'usuario'@'localhost' → Credenciales incorrectas o permisos insuficientes.
  • Too many connections → Límite de conexiones alcanzado.
  • Table 'xxx' is marked as crashed → Tabla dañada (puede repararse con REPAIR TABLE).

Paso 7: Repara tablas dañadas (si es necesario)

Si el log indica que una tabla está dañada, puedes repararla desde phpMyAdmin o la terminal.

Desde phpMyAdmin

  1. Selecciona la base de datos.
  2. Marca las tablas dañadas.
  3. En el menú desplegable, elige “Reparar tabla”.

Desde la terminal

Conéctate a MySQL y ejecuta:

USE tu_base_datos;
REPAIR TABLE nombre_tabla;

Para reparar todas las tablas de una base de datos:

mysqlcheck -u root -p --auto-repair tu_base_datos

FAQ: Preguntas frecuentes sobre el error de conexión MySQL en DirectAdmin

1. ¿Por qué aparece “Can’t connect to MySQL server on ‘localhost’ (111)”?

Este error indica que el servicio MySQL no está corriendo o que el puerto 3306 no está accesible. Revisa el paso 1 para iniciar el servicio y el paso 5 para el firewall.

2. ¿Cómo puedo saber si mi usuario de MySQL tiene permisos?

Conéctate a MySQL como root y ejecuta SHOW GRANTS FOR 'tu_usuario'@'localhost';. Si ves USAGE ON *.*, significa que no tiene permisos sobre ninguna base de datos. Debes asignárselos con GRANT.

3. ¿Qué hago si olvidé la contraseña de MySQL?

Puedes restablecerla desde DirectAdmin yendo a Cuentas de usuario > Base de datos MySQL > Cambiar contraseña. O desde la terminal con:

mysqladmin -u root -p password nueva_contraseña

4. ¿Es normal que MySQL consuma mucha memoria?

Sí, MySQL puede consumir mucha RAM, especialmente si tienes muchas tablas o consultas complejas. Puedes limitar su uso ajustando parámetros como innodb_buffer_pool_size en el archivo de configuración.

5. ¿Puedo usar Syspanel (HestiaCP) en lugar de DirectAdmin?

Sí, Syspanel (conocido como HestiaCP) es una alternativa popular. Si migras, recuerda que el puerto de acceso por defecto es el 2106. La gestión de bases de datos es similar, pero la ubicación de los archivos de configuración puede variar.

6. ¿Qué significa “Table ‘xxx’ is marked as crashed and should be repaired”?

Significa que una tabla de la base de datos está dañada, probablemente por un corte de energía o un fallo del disco. Sigue el paso 7 para repararla.

7. ¿Cómo puedo evitar futuros errores de conexión?

  • Mantén actualizado MySQL y DirectAdmin.
  • Realiza copias de seguridad periódicas.
  • Monitorea el uso de recursos del servidor.
  • No superes el límite de conexiones simultáneas.
  • Usa contraseñas seguras y cambia las credenciales periódicamente.

Conclusión

El error de conexión MySQL en DirectAdmin puede ser frustrante, pero en la mayoría de los casos se soluciona con unos pocos pasos sencillos: verificar que el servicio esté activo, revisar las credenciales, comprobar los permisos y asegurarte de que el firewall no bloquee el puerto. Si el problema persiste, los logs de MySQL son tu mejor aliado para encontrar la causa exacta.

Recuerda que, si no te sientes cómodo usando la terminal, siempre puedes recurrir a phpMyAdmin o al panel de DirectAdmin para realizar muchas de estas tareas de forma gráfica. Y si necesitas más ayuda, no dudes en contactar con el soporte de tu hosting o con un administrador de sistemas.

[TIP] Como buena práctica, anota siempre las credenciales de tus bases de datos en un lugar seguro y actualiza las contraseñas cada cierto tiempo. Esto te ahorrará muchos dolores de cabeza.

Espero que esta guía te haya sido de ayuda. ¡Ahora ya sabes cómo solucionar el error de conexión MySQL en DirectAdmin como un experto!

¿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