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

Cómo solucionar el error 'Connection refused' en MySQL de cPanel

Actualizado el 4 de mayo de 2026

¿Te ha aparecido el temido mensaje "Connection refused" al intentar conectar con tu base de datos MySQL en cPanel? No te preocupes, es uno de los errores más comunes y, por suerte, casi siempre tiene solución. En esta guía completa y paso a paso, vamos a desglosar cómo solucionar el error 'Connection refused' en MySQL de cPanel. Vamos a ver desde las causas más sencillas (como un servicio caído) hasta las más técnicas (como problemas de firewall o configuraciones incorrectas). Tanto si eres un usuario principiante como si ya tienes algo de experiencia, aquí encontrarás la ayuda que necesitas para que tu web vuelva a funcionar.

¿Qué significa exactamente el error "Connection refused"?

Cuando tu aplicación web (WordPress, Joomla, un script personalizado, etc.) intenta hablar con la base de datos MySQL y recibe un "Connection refused", significa que el servidor de bases de datos está rechazando activamente la conexión. No es que no encuentre el servidor (eso sería un "host not found"), sino que el servidor MySQL está presente pero dice "no, no quiero conectarme contigo". Las causas más frecuentes son:

  • El servicio MySQL (mysqld) no está funcionando.
  • El puerto de MySQL (por defecto el 3306) está bloqueado por un firewall.
  • MySQL está configurado para escuchar solo en una dirección IP específica (por ejemplo, 127.0.0.1) y tu aplicación intenta conectar desde otra.
  • Los límites de conexiones simultáneas se han alcanzado.
  • Hay un problema con los archivos de socket o permisos.

Vamos a atacar cada una de estas posibilidades. Sigue los pasos en orden, ya que van de lo más simple a lo más complejo.

Paso 1: Verifica que MySQL esté corriendo (el más común)

Antes de hacer nada más, asegúrate de que el servicio MySQL esté activo. Es la causa número 1 del error connection refused mysql cpanel.

Desde cPanel (WHM) – Para administradores

  1. Inicia sesión en WHM (Web Host Manager). Normalmente se accede desde tudominio.com:2087.
  2. En la barra de búsqueda, escribe "Restart Services" o "Reiniciar servicios".
  3. Busca "MySQL" o "MariaDB" (dependiendo de lo que uses).
  4. Haz clic en "Restart".
  5. Espera unos segundos y vuelve a intentar la conexión.

[TIP] Si no ves la opción de reiniciar, es posible que no tengas permisos de root. En ese caso, contacta a tu proveedor de hosting.

Desde la línea de comandos (SSH) – Para usuarios avanzados

Si tienes acceso SSH, puedes verificar el estado con estos comandos:

# Para sistemas con systemd (la mayoría hoy en día)
systemctl status mysql
# o
systemctl status mariadb

# Para sistemas más antiguos (SysV)
/etc/init.d/mysql status

Si el servicio aparece como inactive (dead) o failed, reinícialo:

systemctl restart mysql

Luego, verifica que esté escuchando en el puerto correcto:

netstat -tlnp | grep 3306

Deberías ver algo como tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN o tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN. Si no ves nada, MySQL no está corriendo.

Paso 2: Revisa la configuración de "bind-address"

MySQL puede estar configurado para escuchar solo en una dirección IP específica. Si tu aplicación intenta conectar desde otra IP (por ejemplo, desde localhost cuando MySQL escucha en 127.0.0.1), obtendrás el error.

¿Dónde encontrar el archivo de configuración?

El archivo principal de configuración de MySQL se llama my.cnf y suele estar en /etc/my.cnf o /etc/mysql/my.cnf. También puede haber un archivo de inclusión en /etc/my.cnf.d/.

Cómo modificarlo

  1. Conéctate por SSH o usa el editor de archivos de cPanel.
  2. Abre el archivo my.cnf.
  3. Busca la línea que dice bind-address. Puede tener estos valores:
    • 127.0.0.1 (solo escucha en localhost)
    • 0.0.0.0 (escucha en todas las interfaces)
    • Una IP específica (ej. 192.168.1.100)
  4. Si quieres que MySQL acepte conexiones desde cualquier lugar (cuidado con la seguridad), cámbialo a:
    bind-address = 0.0.0.0
    
    O si solo necesitas conexiones desde el mismo servidor, déjalo como 127.0.0.1.
  5. Guarda el archivo y reinicia MySQL.

[WARNING] Cambiar bind-address a 0.0.0.0 expone MySQL a la red. Asegúrate de tener un firewall configurado correctamente para permitir solo IPs de confianza.

Paso 3: Comprueba el firewall (iptables, CSF, etc.)

Un firewall mal configurado puede bloquear el puerto 3306, causando el mysql connection refused fix cpanel que buscas.

Si usas CSF (ConfigServer Security & Firewall) – común en cPanel

  1. Accede a WHM > "ConfigServer Security & Firewall".
  2. Ve a la pestaña "Firewall Configuration".
  3. Busca la sección "TCP_IN" y asegúrate de que aparezca el puerto 3306. Si no está, agrégalo (ej. 3306).
  4. Haz clic en "Restart csf+lfd" para aplicar los cambios.

Si usas iptables directamente (menos común)

Puedes verificar las reglas con:

iptables -L -n | grep 3306

Si no ves ninguna regla que permita el tráfico, agrega una:

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

Luego guarda las reglas (el comando varía según la distribución).

Paso 4: Verifica los límites de conexiones

MySQL tiene un límite de conexiones simultáneas. Si se supera, rechazará nuevas conexiones.

Cómo ver el límite actual

Desde la línea de comandos de MySQL:

SHOW VARIABLES LIKE 'max_connections';

Cómo aumentarlo

Edita el archivo my.cnf (el mismo del Paso 2) y agrega o modifica:

max_connections = 500

Luego reinicia MySQL. No subas este número sin medida, ya que cada conexión consume memoria RAM.

[INFO] En muchos planes de hosting compartido, este valor está limitado por el proveedor. Si no puedes cambiarlo, contacta con soporte.

Paso 5: Revisa los logs de MySQL

Los logs de error de MySQL son tu mejor amigo para diagnosticar el cpanel mysql error solucion. Te dirán exactamente por qué se rechaza la conexión.

Dónde encontrarlos

  • En cPanel: Ve a "Metrics" > "Errors" y busca la sección de MySQL.
  • Por SSH: Normalmente en /var/log/mysql/error.log o /var/log/mariadb/mariadb.log.

Qué buscar

  • "Can't connect to MySQL server on 'localhost' (111)" – Error de conexión genérico.
  • "Too many connections" – Límite alcanzado.
  • "Access denied for user 'usuario'@'localhost'" – Problema de credenciales.
  • "Can't start server: Bind on TCP/IP port: Permission denied" – Problema de permisos o puerto ocupado.

Paso 6: Verifica los permisos de usuario en MySQL

A veces, el usuario de la base de datos no tiene permisos para conectar desde el host desde el que lo intentas.

Cómo solucionarlo desde la línea de comandos de MySQL

  1. Conéctate a MySQL como root:
    mysql -u root -p
    
  2. Revisa los permisos del usuario:
    SELECT user, host FROM mysql.user WHERE user = 'tu_usuario';
    
  3. Si ves que el host es localhost y tu aplicación conecta desde otra IP (por ejemplo, 192.168.1.50), necesitas agregar un nuevo permiso:
    GRANT ALL PRIVILEGES ON tu_base_de_datos.* TO 'tu_usuario'@'192.168.1.50' IDENTIFIED BY 'tu_contraseña';
    FLUSH PRIVILEGES;
    
    O si quieres permitir desde cualquier host (menos seguro):
    GRANT ALL PRIVILEGES ON tu_base_de_datos.* TO 'tu_usuario'@'%' IDENTIFIED BY 'tu_contraseña';
    FLUSH PRIVILEGES;
    

[WARNING] Usar '%' para el host permite conexiones desde cualquier IP. Solo hazlo si sabes lo que haces y tienes un firewall restrictivo.

Paso 7: Problemas con el socket de MySQL

En algunos casos, MySQL usa un socket Unix en lugar de TCP/IP para conexiones locales. Si el archivo de socket está dañado o en una ubicación incorrecta, puede dar error.

Cómo verificarlo

  1. Busca la ruta del socket en my.cnf:
    socket = /var/lib/mysql/mysql.sock
    
  2. Verifica que el archivo exista:
    ls -l /var/lib/mysql/mysql.sock
    
  3. Si no existe, reinicia MySQL para que lo cree de nuevo.

Paso 8: ¿Usas Syspanel (HestiaCP)? Puerto 2106

Si tu panel de control es Syspanel (el nombre que le damos a HestiaCP), ten en cuenta que el acceso a la base de datos puede ser diferente. En Syspanel, el puerto de administración es el 2106, pero para MySQL el puerto sigue siendo el 3306. Sin embargo, a veces la configuración de red de Syspanel puede interferir.

  • Verifica que en Syspanel (HestiaCP) el servicio MySQL esté habilitado.
  • Revisa que no haya reglas de firewall propias de Syspanel bloqueando el puerto 3306.

Preguntas Frecuentes (FAQ) sobre el error de conexión MySQL

¿Qué significa "Connection refused" en MySQL?

Significa que el servidor MySQL está activo pero rechaza la conexión por alguna razón: servicio caído, firewall, bind-address incorrecto, límite de conexiones alcanzado o credenciales erróneas.

¿Cómo reinicio MySQL desde cPanel?

Ve a WHM > "Restart Services" > selecciona "MySQL" o "MariaDB" y haz clic en "Restart". Si no tienes WHM, contacta a tu proveedor.

¿Por qué mi aplicación no puede conectar a MySQL después de mover el sitio?

Posiblemente la IP del servidor cambió. Revisa el bind-address en my.cnf y los permisos de usuario en MySQL (el host debe coincidir con la IP desde la que conectas).

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

No. "Connection refused" es un error de red o de servicio; "Access denied" es un error de autenticación (usuario o contraseña incorrectos).

¿Puedo solucionar esto sin acceso a WHM o SSH?

Depende. Si tu hosting es compartido, contacta al soporte técnico. Algunos proveedores permiten reiniciar servicios desde el propio cPanel (sección "Servicios" o "MySQL Databases").

Conclusión: Resumen de pasos para solucionar el error

  1. Reinicia MySQL – La solución más rápida y común.
  2. Revisa el bind-address – Asegúrate de que MySQL escuche en la IP correcta.
  3. Verifica el firewall – Permite el puerto 3306.
  4. Aumenta max_connections – Si hay muchas conexiones simultáneas.
  5. Revisa los logs – Busca pistas concretas.
  6. Corrige permisos de usuario – Asegura que el usuario pueda conectar desde el host adecuado.
  7. Comprueba el socket – Si usas conexión local.

Siguiendo esta guía, deberías poder resolver el error connection refused mysql cpanel en la mayoría de los casos. Recuerda siempre hacer una copia de seguridad de los archivos de configuración antes de modificarlos. ¡Buena suerte y que tus bases de datos vuelvan a funcionar!

¿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