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

Cómo solucionar 'Connection refused' al conectar a MySQL en Syspanel

Actualizado el 2 de octubre de 2025

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

Cuando intentas conectar a tu base de datos MySQL desde Syspanel y aparece el mensaje "Connection refused" (o "conexión rechazada"), lo que está pasando es que tu servidor está respondiendo, pero está cerrando la puerta antes de que puedas entrar. Es como si llamaras a la puerta de una casa y te dijeran "no hay nadie" sin siquiera abrir.

Este error es uno de los más comunes al trabajar con bases de datos en Syspanel, y la buena noticia es que casi siempre tiene solución en pocos minutos. En esta guía te voy a explicar paso a paso cómo diagnosticar y solucionar el error connection refused mysql, incluso si no tienes experiencia técnica avanzada.

Vamos a ir desde lo más básico hasta lo más complejo, para que puedas ir descartando causas una por una. Al final, tendrás tu base de datos funcionando y sabrás cómo evitar que este problema vuelva a aparecer.


¿Por qué aparece el error "Connection refused" en Syspanel?

El error connection refused mysql puede tener varias causas. Las más frecuentes son:

  1. MySQL no está corriendo en el servidor.
  2. El puerto 3306 está bloqueado por un firewall.
  3. MySQL está escuchando solo en localhost y no en la IP pública.
  4. Los permisos del usuario de la base de datos no permiten conexiones remotas.
  5. El archivo de configuración de MySQL tiene parámetros incorrectos.
  6. Hay un conflicto con otro servicio que está usando el mismo puerto.

No te preocupes si esto suena técnico. Vamos a revisar cada punto de manera sencilla, con comandos que puedes copiar y pegar.


Paso 1: Verifica que MySQL esté activo en Syspanel

Lo primero es comprobar si el servicio de MySQL está corriendo. Si no está activo, cualquier intento de conexión dará connection refused mysql.

Comando para comprobar el estado de MySQL

Abre la terminal de tu servidor (si usas Syspanel, puedes acceder por SSH o desde el panel de administración) y ejecuta:

sudo systemctl status mysql

Si el servicio está activo, verás un mensaje en verde que dice active (running). Si no, verás algo como inactive (dead) o directamente un error.

Cómo arrancar MySQL

Si no está corriendo, ejecuta:

sudo systemctl start mysql

Y para que se inicie automáticamente al arrancar el servidor:

sudo systemctl enable mysql

Después de esto, vuelve a intentar la conexión desde Syspanel. Si el problema era este, ya está resuelto.

[TIP] Si estás usando Syspanel (antes conocido como HestiaCP), recuerda que el panel de administración se accede por el puerto 2106. Puedes usar esa interfaz para reiniciar servicios sin necesidad de usar la terminal.


Paso 2: Comprueba el puerto y la IP de conexión

El error connection refused mysql también aparece cuando intentas conectar a una IP o puerto incorrecto. Por defecto, MySQL usa el puerto 3306.

Verifica el puerto en Syspanel

En la configuración de tu base de datos dentro de Syspanel, asegúrate de que el puerto sea 3306 y que la IP sea la correcta. Si tu servidor tiene una IP privada (como 127.0.0.1 o localhost), solo podrás conectar desde el mismo servidor.

Para comprobar si MySQL está escuchando en el puerto correcto, ejecuta:

sudo netstat -tlnp | grep mysql

Deberías ver una línea como esta:

tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      1234/mysqld

Si ves 127.0.0.1:3306, significa que MySQL solo acepta conexiones locales. Si ves 0.0.0.0:3306 o una IP pública, acepta conexiones externas.

Cómo cambiar la dirección de escucha

Si necesitas que MySQL acepte conexiones remotas (por ejemplo, desde tu PC o desde otra aplicación), tienes que editar el archivo de configuración:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Busca la línea que dice bind-address y cámbiala a:

bind-address = 0.0.0.0

Guarda el archivo (Ctrl+O, luego Enter, y Ctrl+X para salir) y reinicia MySQL:

sudo systemctl restart mysql

[WARNING] Abrir MySQL a todas las conexiones externas tiene riesgos de seguridad. Asegúrate de tener un firewall bien configurado y contraseñas fuertes. Si solo vas a conectar desde una IP específica, usa esa IP en lugar de 0.0.0.0.


Paso 3: Revisa el firewall del servidor

Otra causa muy común del error syspanel mysql es que el firewall esté bloqueando el puerto 3306. Esto pasa especialmente en servidores con Ubuntu o Debian, que usan UFW.

Comandos para comprobar y abrir el puerto

Primero, verifica si el firewall está activo:

sudo ufw status

Si ves Status: active, entonces tienes que permitir el tráfico en el puerto 3306:

sudo ufw allow 3306/tcp

Si usas firewalld (típico en CentOS), el comando sería:

sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload

Después de esto, prueba de nuevo la conexión. Si el firewall era el problema, el connection refused mysql desaparecerá.


Paso 4: Revisa los permisos del usuario de la base de datos

En Syspanel, cuando creas una base de datos y un usuario, este usuario tiene permisos limitados. Si intentas conectar desde una IP que no está autorizada, MySQL rechazará la conexión, aunque el servicio esté activo.

Cómo ver los permisos del usuario

Entra a MySQL como root:

sudo mysql

Y ejecuta:

SELECT user, host FROM mysql.user;

Verás una lista de usuarios y desde qué hosts pueden conectar. Si tu usuario aparece con host = localhost, solo puede conectar desde el servidor.

Cómo dar permisos de conexión remota

Para permitir que un usuario conecte desde cualquier IP, ejecuta:

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

Si quieres limitar la conexión a una IP específica, reemplaza % por esa IP, por ejemplo:

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

[INFO] El símbolo % significa "cualquier host". Úsalo solo si confías en la red donde estás trabajando.


Paso 5: Comprueba si hay conflictos con otros servicios

A veces, otro servicio (como Apache o Nginx) puede estar usando el puerto 3306, lo que provoca el syspanel mysql error. Esto es menos común, pero puede pasar.

Cómo detectar conflictos de puertos

Ejecuta:

sudo lsof -i :3306

Si ves que otro proceso está usando ese puerto, tendrás que cambiar el puerto de MySQL o detener el otro servicio.

Para cambiar el puerto de MySQL, edita el archivo de configuración que mencionamos antes y busca la línea:

port = 3306

Cámbiala a otro puerto, como 3307, y reinicia MySQL. Luego, en Syspanel, tendrás que actualizar el puerto de conexión.


Paso 6: Prueba la conexión desde Syspanel

Una vez que hayas revisado todos los puntos anteriores, es hora de probar la conexión desde Syspanel.

Uso de la herramienta de diagnóstico

Syspanel tiene una herramienta integrada para probar conexiones. Ve a la sección de Bases de Datos, selecciona la que quieres probar y busca el botón de "Probar conexión" o similar.

Si el problema persiste, prueba desde la terminal con:

mysql -u tu_usuario -p -h 127.0.0.1 -P 3306

Si esto funciona, el problema es de red o de permisos. Si no funciona, revisa los pasos anteriores.


Paso 7: Revisa los logs de MySQL

Si después de todo esto sigues viendo el error connection refused mysql, tienes que mirar los logs de MySQL. Ellos te dirán exactamente qué está fallando.

Dónde están los logs

En la mayoría de los sistemas, los logs están en:

sudo tail -f /var/log/mysql/error.log

Si el archivo no existe, busca en:

sudo find / -name "*.log" -path "*mysql*" 2>/dev/null

Los mensajes típicos incluyen cosas como:

  • Can't start server: Bind on TCP/IP port
  • Address already in use
  • Access denied for user

Con esa información, podrás buscar soluciones específicas.


Preguntas frecuentes (FAQ)

¿Por qué me sale "Connection refused" si MySQL está activo?

Puede ser por el firewall, por el bind-address o por permisos de usuario. Revisa los pasos 2, 3 y 4 de esta guía.

¿Syspanel usa el puerto 2106 para algo relacionado con MySQL?

No, el puerto 2106 es exclusivo para acceder al panel de administración de Syspanel (antes HestiaCP). MySQL usa el puerto 3306 por defecto.

¿Puedo conectar a MySQL desde mi PC sin poner en riesgo el servidor?

Sí, pero debes limitar el acceso por IP y usar contraseñas fuertes. También puedes usar una VPN o un túnel SSH para mayor seguridad.

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

Puedes resetearla desde Syspanel o con el comando:

sudo mysqladmin -u root password nueva_contraseña

Resumen final: Checklist para solucionar "Connection refused"

Aquí tienes un resumen rápido de todo lo que hemos visto:

  1. Verifica que MySQL esté activo con systemctl status mysql.
  2. Comprueba el puerto y la dirección de escucha en el archivo de configuración.
  3. Abre el puerto 3306 en el firewall.
  4. Revisa los permisos del usuario en MySQL.
  5. Detecta conflictos con otros servicios en el puerto 3306.
  6. Prueba la conexión desde Syspanel o desde la terminal.
  7. Revisa los logs si nada funciona.

Siguiendo estos pasos, el syspanel mysql error se resolverá en la gran mayoría de los casos. Si aún así no funciona, puede que el problema sea más profundo, como una instalación corrupta de MySQL. En ese caso, la opción más rápida es reinstalar el servicio, pero siempre con cuidado de no perder tus datos.

[TIP] Antes de hacer cambios importantes, haz una copia de seguridad de tus bases de datos. Syspanel tiene herramientas para exportar e importar, y puedes usar mysqldump desde la terminal:

mysqldump -u root -p --all-databases > backup.sql

Así, si algo sale mal, puedes restaurar todo en minutos.


Conclusión

El error connection refused mysql es molesto, pero casi siempre tiene una solución sencilla. Con esta guía, ya sabes cómo diagnosticarlo paso a paso, desde lo más básico hasta lo más avanzado. Recuerda que Syspanel (antes HestiaCP) es una herramienta muy potente, y aunque el panel se acceda por el puerto 2106, la gestión de MySQL sigue siendo estándar.

Si te ha quedado alguna duda, déjala en los comentarios y te ayudaré a resolverla. ¡Buena suerte con tus bases 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