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

Cómo solucionar el error 'Connection refused' en bases de datos de DirectAdmin

Actualizado el 16 de enero de 2026

Primeros pasos: entender qué significa "Connection refused"

Cuando tu web o aplicación te muestra el mensaje "Connection refused" (conexión rechazada) al intentar acceder a la base de datos, significa que el servidor donde está alojado tu DirectAdmin está rechazando activamente la petición de conexión. A diferencia de un error de "timeout" (donde no hay respuesta), aquí el servidor responde con un "no quiero conectarme".

Este error es muy común cuando el servicio de MySQL o MariaDB se ha caído, está reiniciándose, o tiene problemas de configuración. La buena noticia es que en la mayoría de los casos lo puedes solucionar tú mismo siguiendo estos pasos, sin necesidad de abrir un ticket de soporte.

[INFO] Este artículo está pensado para usuarios de DirectAdmin con acceso al panel de control y, preferiblemente, acceso SSH (terminal). Si no tienes acceso SSH, salta a la sección de "Soluciones desde el panel".


¿Por qué ocurre el error "Connection refused" en DirectAdmin?

Antes de lanzarnos a solucionar el error, es útil entender las causas más frecuentes. Así podrás identificarlo más rápido la próxima vez.

Causas más comunes

  1. El servicio MySQL/MariaDB está caído: Es la causa más habitual. El proceso se detuvo por un fallo del sistema, falta de memoria o un cierre incorrecto.
  2. El puerto 3306 está bloqueado: El firewall del servidor (CSF, iptables) puede estar bloqueando las conexiones externas o incluso las internas.
  3. Configuración incorrecta de los archivos de bind: MySQL está configurado para escuchar solo en 127.0.0.1 (localhost) y tu aplicación intenta conectar a otra IP.
  4. El socket de MySQL no existe o tiene permisos incorrectos: En algunos casos, el archivo /var/run/mysqld/mysqld.sock se ha borrado o no tiene los permisos adecuados.
  5. Sobrecarga de conexiones: Has alcanzado el límite max_connections y el servidor rechaza nuevas peticiones.
  6. Problemas de espacio en disco: Si el disco está lleno, MySQL puede negarse a arrancar o aceptar conexiones.

Solución 1: Comprobar el estado del servicio desde DirectAdmin

Este es el primer paso, y el más sencillo. Accede a tu panel de DirectAdmin y sigue estos pasos:

  1. Inicia sesión en tu panel de DirectAdmin (normalmente en https://tu-dominio.com:2222).
  2. Busca la sección "Administración del sistema" o "Servicios" (depende de la versión, puede aparecer como "System Services" o "Service Monitor").
  3. Busca en la lista los servicios MySQL y MariaDB.
  4. Comprueba el estado: si aparece como "Stopped" o "Down", significa que está caído.

Cómo iniciar el servicio desde el panel

  1. Haz clic en el botón "Start" o "Iniciar" junto al servicio MySQL.
  2. Espera unos segundos y refresca la página.
  3. Vuelve a comprobar el estado: debería aparecer como "Running" o "Up".

[TIP] Si el servicio se inicia pero se vuelve a caer a los pocos segundos, el problema es más profundo (configuración o corrupción). Pasa a la siguiente sección.


Solución 2: Acceso por SSH y diagnóstico manual

Si no tienes acceso SSH, contacta con tu proveedor de hosting o salta a la sección de "Soluciones desde el panel". Para los que sí tienen acceso, aquí va el método infalible.

Paso 1: Conectarse al servidor

ssh usuario@tu-servidor.com

Sustituye usuario por tu usuario root o el usuario con privilegios sudo.

Paso 2: Verificar el estado del servicio

Ejecuta este comando para ver si MySQL está corriendo:

systemctl status mysql

O si usas MariaDB:

systemctl status mariadb

Si el servicio está caído, verás un mensaje en rojo con "inactive (dead)". Si está activo pero con errores, verás logs de fallos.

Paso 3: Intentar iniciar el servicio manualmente

Para intentar levantar el servicio:

systemctl start mysql

O para MariaDB:

systemctl start mariadb

Si se inicia correctamente, verás "active (running)". Si falla, te dará un mensaje de error. Copia ese mensaje, es oro puro para el diagnóstico.

Paso 4: Revisar los logs de errores

Los logs de MySQL son la mejor fuente de información. Ejecuta:

tail -100 /var/log/mysql/error.log

O si no existe esa ruta, prueba con:

tail -100 /var/log/mysqld.log

Busca líneas que contengan "ERROR", "FATAL", "Can't connect" o "Out of memory".


Solución 3: Reparar problemas comunes de configuración

Aquí van los problemas más típicos y cómo solucionarlos.

Problema de espacio en disco

Un disco lleno es la causa más común de que MySQL se caiga y no pueda arrancar. Comprueba el espacio disponible:

df -h

Si ves que la partición principal está al 100%, necesitas liberar espacio. Puedes borrar logs antiguos, copias de seguridad obsoletas o archivos temporales.

[WARNING] No borres archivos del sistema si no sabes qué son. Mejor consulta con tu proveedor.

Problema de permisos del directorio de datos

MySQL necesita permisos correctos en su directorio de datos. Si los permisos se han corrompido:

chown -R mysql:mysql /var/lib/mysql
chmod -R 755 /var/lib/mysql

Problema con el socket

Si el error menciona el socket, asegúrate de que el directorio existe:

mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld

Configuración de bind-address

Abre el archivo de configuración de MySQL:

nano /etc/mysql/my.cnf

O en MariaDB:

nano /etc/mysql/mariadb.conf.d/50-server.cnf

Busca la línea bind-address. Si está configurada como 0.0.0.0, significa que escucha en todas las interfaces. Si solo quieres conexiones locales, debería ser 127.0.0.1. Si tu aplicación se conecta desde otro servidor, necesitas la IP correcta.

[INFO] Si tu aplicación está en el mismo servidor que la base de datos, lo más seguro es usar 127.0.0.1.


Solución 4: Aumentar el límite de conexiones

Si el error ocurre solo cuando hay mucho tráfico, es posible que estés llegando al límite de conexiones simultáneas.

  1. Abre el archivo de configuración.
  2. Busca la línea max_connections.
  3. Si no existe, añádela en la sección [mysqld]:
max_connections = 500

[WARNING] No pongas un número excesivamente alto (más de 1000) si tu servidor no tiene suficiente RAM. Cada conexión consume memoria.

  1. Guarda el archivo y reinicia el servicio:
systemctl restart mysql

Solución 5: Comprobar el firewall (CSF o iptables)

A veces el firewall bloquea las conexiones al puerto 3306. Para verificar si el firewall está bloqueando:

iptables -L -n | grep 3306

Si ves una regla de bloqueo, necesitas permitir el acceso. Para abrir el puerto temporalmente:

iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

Si usas CSF (ConfigServer Security & Firewall):

csf -a IP_DEL_SERVIDOR

O para abrir el puerto:

csf --add 3306 tcp

[INFO] Solo abre el puerto 3306 si tu aplicación se conecta a la base de datos desde otro servidor. Para conexiones locales (misma máquina), no es necesario.


Solución 6: Reparar la base de datos dañada

Si el servicio arranca pero las tablas están corruptas, verás errores al conectarte. Para reparar tablas:

mysqlcheck -u root -p --auto-repair --check --all-databases

Te pedirá la contraseña de root de MySQL. Si no la recuerdas, puedes cambiar la contraseña de root de MySQL desde el panel de DirectAdmin en "MySQL Management".


Solución 7: Reiniciar el servidor completo

Si nada de lo anterior funciona, un reinicio completo del servidor puede resolver problemas de memoria o procesos colgados.

reboot

[WARNING] Un reinicio afecta a todos los sitios alojados en el servidor. Si tienes sitios en producción, intenta hacerlo en horas de bajo tráfico.


Prevención y buenas prácticas

Para evitar futuros errores de "connection refused", te recomiendo:

  1. Monitorizar el espacio en disco: Configura alertas cuando el disco esté al 80% de capacidad.
  2. Revisar los logs semanalmente: Así detectarás problemas antes de que se conviertan en caídas.
  3. Mantener MySQL actualizado: Las actualizaciones corrigen bugs y vulnerabilidades.
  4. Configurar un cron de auto-reparación: Un script que revise el estado de MySQL cada 5 minutos y lo reinicie si está caído.
  5. Optimizar las consultas: Si tu base de datos es lenta o se satura, optimiza las consultas SQL de tu aplicación.

Preguntas frecuentes (FAQ)

¿Qué hago si no tengo acceso SSH?

Si no tienes acceso SSH, contacta con tu proveedor de hosting y diles que tienes un error "connection refused" en MySQL. Ellos podrán reiniciar el servicio o diagnosticar el problema por ti.

¿El error "Connection refused" es lo mismo que "Access denied"?

No. "Access denied" significa que el servidor MySQL está funcionando pero rechaza tus credenciales. "Connection refused" significa que el servidor ni siquiera acepta la conexión.

¿Puedo solucionar esto desde el panel de DirectAdmin sin SSH?

Sí, puedes reiniciar el servicio desde el panel, pero no podrás ver los logs de error ni modificar la configuración. Para problemas simples, el panel es suficiente.

¿Cuánto tiempo tarda en solucionarse?

Si es un problema simple (servicio caído), con el reinicio desde el panel se soluciona en menos de 1 minuto. Si es un problema de configuración, puede llevarte de 15 a 30 minutos siguiendo esta guía.

¿Afecta este error a todos mis sitios web?

Sí, si todos tus sitios usan bases de datos en el mismo servidor MySQL, todos se verán afectados. Las páginas estáticas (HTML puro) seguirán funcionando.


Conclusión

El error "Connection refused" en bases de datos de DirectAdmin es frustrante pero casi siempre solucionable. El 80% de las veces se resuelve simplemente reiniciando el servicio MySQL desde el panel o por SSH. El resto de las veces, el problema está en la configuración, el firewall o el espacio en disco.

Recuerda que DirectAdmin es una herramienta muy completa, y su monitor de servicios te da pistas visuales sobre qué está fallando. Si después de seguir todos estos pasos el problema persiste, no dudes en contactar con tu proveedor de hosting, ya que puede ser un problema de hardware o de configuración a nivel de red.

[TIP] Guarda este artículo en tus favoritos. La próxima vez que veas "connection refused", ya sabrás exactamente qué hacer. Y si te ha sido útil, compártelo con otros administradores de servidores que puedan necesitarlo.

¿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