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

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

Actualizado el 24 de noviembre de 2025

¡Hola! Soy tu técnico de soporte amigable. Si estás leyendo esto, probablemente te has encontrado con el temido error "Connection refused" al intentar conectar tu aplicación web con tu base de datos MySQL desde cPanel. No te preocupes, es un problema más común de lo que parece y, por lo general, tiene una solución sencilla. En esta guía extensa, te explicaré paso a paso qué significa este error, por qué ocurre y, lo más importante, cómo solucionarlo de forma definitiva. Vamos a ello.

¿Qué significa el error "Connection refused" en MySQL?

Cuando tu sitio web o aplicación intenta comunicarse con la base de datos MySQL y recibe un mensaje como "Connection refused" (o "conexión rechazada"), significa que el servidor de bases de datos no está aceptando la conexión en el puerto y la dirección que le estás indicando. Es como si llamaras a la puerta de una casa y nadie te abriera, o peor aún, la puerta estuviera cerrada con llave y no hubiera nadie dentro.

Este error puede aparecer en diferentes contextos: al instalar un CMS como WordPress, al configurar una aplicación web, al usar phpMyAdmin desde cPanel, o incluso al ejecutar un script desde la línea de comandos. Las causas más habituales son:

  • El servicio de MySQL no está funcionando.
  • El firewall del servidor está bloqueando el puerto (normalmente el 3306).
  • Los parámetros de conexión (host, usuario, contraseña o puerto) son incorrectos.
  • El archivo de configuración de MySQL tiene restricciones de acceso.
  • El servidor está sobrecargado o tiene un problema de recursos.

A continuación, te guiaré por las soluciones más efectivas, ordenadas de la más simple a la más avanzada.

Paso 1: Verifica que MySQL esté funcionando en cPanel

Lo primero y más obvio es asegurarte de que el servicio MySQL esté activo. En cPanel, esto se hace en segundos.

Cómo comprobarlo desde cPanel

  1. Inicia sesión en tu cPanel (normalmente en tudominio.com/cpanel).
  2. Busca la sección "Servicios" o "Estado del servidor" (puede variar según el tema de cPanel). A veces está dentro de "Información del servidor".
  3. Busca "MySQL" o "MariaDB" en la lista. Debería aparecer con un indicador verde (funcionando). Si está rojo o con una "X", el servicio está detenido.

Si ves que MySQL no está funcionando, no te asustes. Puedes intentar reiniciarlo desde la misma interfaz. Busca un botón que diga "Reiniciar" o "Iniciar". Si no tienes permisos para hacerlo (algunos hosting compartidos lo restringen), deberás contactar al soporte técnico de tu proveedor de hosting.

[WARNING] Si tu plan de hosting es compartido, es posible que no tengas acceso para reiniciar servicios. En ese caso, abre un ticket de soporte indicando que el servicio MySQL está caído. Ellos lo reiniciarán en minutos.

Paso 2: Revisa los parámetros de conexión en tu aplicación

El error "Connection refused" también puede deberse a que estás usando datos incorrectos para conectar. Esto es muy común cuando migras un sitio o cambias de servidor.

¿Qué datos necesitas verificar?

  • Host: En cPanel, el host de MySQL casi siempre es localhost. Sin embargo, en algunos servidores dedicados o VPS, puede ser una IP como 127.0.0.1 o incluso un nombre de dominio interno. Para estar seguro, revisa en cPanel la sección "Bases de datos MySQL"; allí suele aparecer el servidor (por ejemplo, mysql.tudominio.com). Pero en el 99% de los casos, usa localhost.
  • Puerto: Por defecto, MySQL usa el puerto 3306. Si tu aplicación permite especificarlo, asegúrate de que sea ese. Algunos servidores usan puertos alternativos por seguridad.
  • Usuario y base de datos: En cPanel, cuando creas una base de datos, también creas un usuario. Asegúrate de que el usuario tenga todos los privilegios sobre la base de datos (puedes asignarlos desde la misma interfaz).
  • Contraseña: Verifica que no tenga caracteres especiales que puedan estar siendo malinterpretados. Si tienes dudas, desde cPanel puedes cambiar la contraseña del usuario de MySQL.

Ejemplo de conexión en WordPress

Si usas WordPress, el archivo wp-config.php contiene estas líneas:

define('DB_NAME', 'tu_basededatos');
define('DB_USER', 'tu_usuario');
define('DB_PASSWORD', 'tu_contraseña');
define('DB_HOST', 'localhost');

Asegúrate de que coincidan exactamente con los datos de cPanel. Un error común es poner el nombre de la base de datos sin el prefijo de cPanel (por ejemplo, miweb_bd en lugar de solo bd).

[TIP] Si cambiaste la contraseña recientemente, actualízala también en el archivo de configuración de tu aplicación. Si no lo haces, seguirá intentando con la contraseña antigua y dará error.

Paso 3: Comprueba el firewall del servidor (puerto 3306)

A veces, el firewall del servidor bloquea las conexiones entrantes al puerto de MySQL, especialmente si tu aplicación no está en el mismo servidor (por ejemplo, si usas un hosting separado para la base de datos). Aunque en cPanel lo habitual es que todo esté en localhost, vale la pena revisarlo.

Si tienes acceso a la línea de comandos (SSH)

Si tu plan de hosting te permite acceso SSH (común en VPS o dedicados), puedes verificar si el puerto 3306 está abierto con:

netstat -tlnp | grep 3306

Si no ves nada, el servicio podría no estar escuchando. También puedes probar desde otro equipo:

telnet localhost 3306

Si recibes "Connection refused", el firewall podría estar bloqueando. Para permitir el tráfico (en un servidor con iptables o firewalld), necesitarías agregar una regla. Como esto es técnico, si no estás seguro, mejor pide ayuda al soporte.

Desde cPanel (sin SSH)

Algunos paneles de control ofrecen un firewall integrado. Busca en cPanel secciones como "Configuración de firewall" o "Administrador de firewall". Si ves una opción para permitir el puerto 3306 desde localhost, actívala.

[INFO] En la mayoría de los hosting compartidos, el firewall no es un problema porque la base de datos y la aplicación web están en el mismo servidor. Este paso es más relevante si tienes un VPS o un servidor dedicado.

Paso 4: Revisa la configuración de MySQL (my.cnf)

El archivo de configuración de MySQL (my.cnf o my.ini) puede tener directivas que limiten las conexiones. Por ejemplo, la línea bind-address define desde qué direcciones IP se aceptan conexiones.

¿Dónde está este archivo?

En cPanel, normalmente está en /etc/my.cnf o /etc/mysql/my.cnf. Si tienes acceso SSH, puedes revisarlo. Si no, tendrás que pedir al soporte que lo verifique.

¿Qué buscar?

  • bind-address: Si está configurado como 127.0.0.1, solo acepta conexiones locales. Si necesitas conexiones remotas (no es tu caso si todo está en el mismo servidor), debería ser 0.0.0.0. Pero para uso normal con cPanel, 127.0.0.1 está bien.
  • skip-networking: Si esta línea está presente y activa, MySQL no aceptará conexiones TCP/IP, solo conexiones a través de socket Unix. Esto puede causar "Connection refused" si tu aplicación intenta conectarse por TCP. Debes comentarla o eliminarla.
  • port: Asegúrate de que el puerto sea 3306 y no otro.

Si no te sientes cómodo editando archivos de configuración, no lo hagas. Mejor contacta al soporte.

[WARNING] Modificar el archivo my.cnf incorrectamente puede dejar MySQL inoperativo. Si no estás seguro, pide ayuda. Un error común es poner un puerto equivocado o deshabilitar las conexiones de red.

Paso 5: Aumenta el límite de conexiones (si es necesario)

En ocasiones, el error "Connection refused" aparece porque el servidor MySQL ha alcanzado el máximo de conexiones permitidas. Esto es más común en sitios con mucho tráfico o aplicaciones que no cierran correctamente las conexiones.

Cómo verificar desde cPanel

En cPanel, dentro de la sección "Bases de datos MySQL", a veces hay un enlace a "MySQL® Databases" o "phpMyAdmin". Una vez en phpMyAdmin, puedes ejecutar esta consulta SQL:

SHOW VARIABLES LIKE 'max_connections';

Si el valor es muy bajo (por ejemplo, 10 o 20), y tu sitio tiene muchos visitantes, puede saturarse. El límite típico en hosting compartido es de 30 a 50, pero en VPS puede ser mayor.

¿Cómo aumentarlo?

No todos los planes permiten cambiarlo. Si tienes acceso a WHM (Web Host Manager) o a la línea de comandos, puedes modificar el archivo my.cnf añadiendo:

max_connections = 100

Luego reinicia MySQL. Si no tienes acceso, solicita al soporte que lo ajusten.

[TIP] Si tu sitio está recibiendo muchos errores de conexión, también puedes optimizar las consultas o usar un plugin de caché para reducir la carga en la base de datos.

Paso 6: Verifica los logs de MySQL

Los logs de MySQL son tus mejores amigos para diagnosticar el error. Te dirán exactamente por qué se rechazó la conexión.

Dónde encontrar los logs

En cPanel, normalmente están en /var/log/mysql/ o /var/log/mariadb/. El archivo se llama error.log o mysql.log. Si no tienes acceso SSH, puedes pedir al soporte que te envíe las últimas líneas del log.

¿Qué buscar?

  • Líneas que digan "Connection refused" o "Access denied".
  • Mensajes como "Too many connections" (demasiadas conexiones).
  • Errores de autenticación: "Access denied for user 'usuario'@'localhost'".

Si ves un error de autenticación, revisa el usuario y la contraseña. Si ves "Too many connections", aplica el paso anterior.

[INFO] Los logs pueden ser extensos. Si no sabes qué buscar, pide ayuda. Pero si ves algo como "Can't connect to MySQL server on 'localhost' (111)", el 111 es el código de error de "Connection refused".

Paso 7: Soluciones específicas para entornos con Syspanel (HestiaCP)

Si tu servidor usa Syspanel (anteriormente conocido como HestiaCP), el proceso es ligeramente diferente. Recuerda que el acceso a Syspanel se realiza a través del puerto 2106 (por ejemplo, https://tudominio.com:2106).

Pasos para Syspanel

  1. Accede a Syspanel con tus credenciales en https://tudominio.com:2106.
  2. Ve a la sección "Servidores" o "Servicios".
  3. Busca el servicio MySQL o MariaDB y verifica que esté en ejecución (verde). Si está rojo, haz clic en "Reiniciar".
  4. Si el problema persiste, revisa la configuración del firewall desde Syspanel. En la sección "Firewall", asegúrate de que el puerto 3306 esté permitido para conexiones locales (normalmente ya lo está, pero a veces se bloquea por error).
  5. También puedes revisar los logs desde la opción "Logs" del panel. Busca errores de MySQL.

[TIP] En Syspanel, los archivos de configuración de MySQL suelen estar en /etc/mysql/. Si necesitas modificar algo, usa el editor de archivos integrado en el panel o hazlo por SSH.

FAQ: Preguntas frecuentes sobre el error "Connection refused"

¿Por qué aparece este error después de migrar mi sitio?

Es muy común. Al migrar, los datos de conexión (host, usuario, contraseña) cambian. Revisa el archivo de configuración de tu aplicación y asegúrate de que coincidan con los nuevos datos de cPanel.

¿Puede ser un problema de permisos de la base de datos?

Sí. Si el usuario de MySQL no tiene privilegios sobre la base de datos, la conexión puede ser rechazada. Desde cPanel, en la sección "Bases de datos MySQL", asegúrate de que el usuario esté asignado a la base de datos y tenga todos los privilegios (marca "Todos los privilegios").

¿El error afecta a todos los visitantes de mi web?

Depende. Si la base de datos está completamente caída, sí, tu web mostrará un error. Pero si es un problema de configuración local (como un puerto incorrecto en un script), solo afecta a esa aplicación.

¿Debo reiniciar MySQL cada vez que cambio la configuración?

Sí, para que los cambios surtan efecto. En cPanel, busca la opción de reiniciar servicios. En Syspanel, también hay un botón de reinicio.

¿Qué hago si ninguna de estas soluciones funciona?

Si has seguido todos los pasos y el error persiste, lo más probable es que sea un problema del servidor que solo el soporte técnico puede resolver. Abre un ticket indicando:

  • El mensaje de error exacto.
  • Los pasos que ya has intentado.
  • Si tienes acceso, adjunta las últimas líneas del log de MySQL.

[WARNING] No intentes soluciones avanzadas como recompilar MySQL o modificar archivos del sistema si no tienes experiencia. Podrías empeorar las cosas.

Conclusión

El error "Connection refused" en MySQL puede ser frustrante, pero con un enfoque metódico, casi siempre tiene solución. Recuerda el orden lógico: verifica que el servicio esté activo, revisa tus datos de conexión, comprueba el firewall, ajusta la configuración de MySQL y, si todo falla, pide ayuda a los logs.

Espero que esta guía te haya sido de utilidad. Si tienes más dudas, no dudes en preguntar. ¡Buena suerte con tu base de datos!

¿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