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

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

Actualizado el 15 de abril de 2026

¿Acabas de intentar conectar tu aplicación web a la base de datos MySQL y te has encontrado con el temido mensaje "Connection refused"? No te preocupes, es uno de los errores más comunes en el mundo del hosting y, por suerte, en la mayoría de los casos tiene una solución sencilla que puedes aplicar tú mismo sin necesidad de ser un experto.

En este artículo, vamos a desglosar paso a paso qué significa este error, por qué ocurre y, lo más importante, cómo solucionarlo dentro de Syspanel. Vamos a ello.

¿Qué significa exactamente "Connection refused"?

Cuando tu aplicación intenta hablar con la base de datos, lo hace a través de un "puerto" (como una puerta específica en un edificio). Por defecto, MySQL escucha en el puerto 3306.

El error error connection refused mysql significa que tu aplicación ha encontrado la puerta (el servidor) pero al intentar abrirla, le han dicho "no hay nadie aquí" o "no puedes pasar". Es diferente a un error de "timeout" (que sería que la puerta ni siquiera responde). Aquí, el servidor está activo, pero rechaza la conexión activamente.

Las causas más frecuentes son:

  1. El servicio de MySQL está detenido en el servidor.
  2. El puerto está bloqueado por un firewall.
  3. MySQL está configurado para escuchar solo en una dirección específica (normalmente localhost) y no en la IP pública.
  4. Los datos de conexión (usuario, contraseña, host) son incorrectos.
  5. El host de conexión es incorrecto (estás usando localhost cuando deberías usar la IP del servidor o viceversa).

Vamos a revisar cada uno de estos puntos dentro del contexto de Syspanel.

Primeros pasos: Diagnóstico rápido en Syspanel

Antes de entrar en materia, es crucial que sepas dónde estás trabajando. Syspanel es tu panel de control de hosting, y el puerto de acceso a este panel es el 2106. Es la herramienta que te permite gestionar tus sitios web, bases de datos y cuentas de correo.

Para empezar, inicia sesión en tu panel de Syspanel y sigue estos pasos:

1. Verificar que el servicio MySQL está activo

Esta es la causa más común y la más fácil de comprobar. A veces, tras un reinicio del servidor o una actualización, el servicio de bases de datos no se inicia correctamente.

  1. Accede a tu panel de Syspanel (recuerda, puerto 2106).
  2. Busca la sección de "Servicios" o "Estado del Servidor". Normalmente está en el menú lateral o en el panel de inicio.
  3. Busca la entrada "MySQL" o "MariaDB" (es el motor que usa MySQL en muchos sistemas).
  4. Comprueba que el estado sea "Activo" o "En ejecución" (Running).

[WARNING]
Si el estado aparece como "Detenido" o "Error", no intentes reiniciarlo desde el panel si no estás seguro. Puede que necesites hacerlo desde la terminal del servidor con el comando sudo service mysql restart o sudo systemctl restart mysql. Si no tienes acceso, contacta con tu proveedor de hosting.

2. Revisar los datos de conexión en tu aplicación

El 90% de las veces, el problema no es el servidor, sino un pequeño error tipográfico en la configuración de tu sitio web.

Revisa el archivo de configuración de tu aplicación (por ejemplo, wp-config.php en WordPress, .env en Laravel, etc.) y verifica estos tres datos:

  • DB_HOST: Aquí es donde más errores hay. Si tu aplicación está en el mismo servidor que la base de datos, usa localhost. Si la base de datos está en un servidor diferente, necesitas la IP pública del servidor de bases de datos.
  • DB_NAME: El nombre exacto de la base de datos que creaste en Syspanel.
  • DB_USER y DB_PASSWORD: El usuario y la contraseña que definiste al crear la base de datos en Syspanel.

[TIP]
Copia y pega el nombre de la base de datos y el usuario directamente desde el panel de Syspanel. Evita escribirlos a mano para no cometer errores.

3. Probar la conexión desde la terminal (SSH)

Si tienes acceso SSH a tu servidor, esta es la prueba definitiva para aislar el problema.

Conéctate por SSH y ejecuta el siguiente comando, sustituyendo usuario y contraseña por los tuyos:

mysql -u usuario -p -h localhost
  • Si te conecta sin problemas, el servidor MySQL funciona y el problema está en la configuración de tu aplicación o en el firewall.
  • Si te da el error ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2), significa que el servicio no está corriendo.
  • Si te da el error error connection refused mysql, significa que el servicio está corriendo pero no acepta conexiones en esa dirección.

Prueba ahora conectándote a la IP pública de tu servidor:

mysql -u usuario -p -h TU_IP_PUBLICA
  • Si esto falla con "Connection refused", pero localhost funciona, entonces MySQL está configurado para escuchar solo en 127.0.0.1 y necesitas cambiar su configuración.

Solución Paso a Paso para el error "Connection refused" en Syspanel

Ahora que hemos hecho el diagnóstico, vamos a por las soluciones. Sigue estos pasos en orden hasta que el error desaparezca.

Paso 1: Corregir el archivo de configuración de MySQL

Si has confirmado que el servicio está activo pero no puedes conectarte desde la IP pública, es que MySQL está escuchando solo en localhost. Necesitamos hacer que escuche en todas las interfaces (o en la IP específica).

  1. Accede a tu servidor por SSH.
  2. Abre el archivo de configuración de MySQL. Normalmente se encuentra en /etc/mysql/mysql.conf.d/mysqld.cnf o /etc/my.cnf.
  3. Busca la línea que dice bind-address = 127.0.0.1.
  4. Cámbiala por bind-address = 0.0.0.0 (para que escuche en todas las IPs) o por la IP pública específica de tu servidor.
  5. Guarda el archivo y reinicia el servicio de MySQL con sudo systemctl restart mysql.

[WARNING]
Cambiar bind-address a 0.0.0.0 expone tu base de datos a internet. Asegúrate de que tu firewall solo permita conexiones desde las IPs de tus aplicaciones y que uses contraseñas seguras.

Paso 2: Configurar el Firewall para permitir el puerto 3306

Este es un paso crítico. Aunque MySQL escuche en todas las interfaces, el firewall del servidor puede estar bloqueando el puerto 3306 para conexiones externas.

Dependiendo de tu sistema operativo, usa uno de estos comandos:

  • En Ubuntu/Debian (con UFW):
sudo ufw allow from CUALQUIER_IP to any port 3306

O más restrictivo (recomendado):

sudo ufw allow from IP_DE_TU_APLICACION to any port 3306
  • En CentOS/RHEL (con firewalld):
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="IP_DE_TU_APLICACION" port protocol="tcp" port="3306" accept'
sudo firewall-cmd --reload

[INFO]
No abras el puerto 3306 a todo el mundo (0.0.0.0/0) si no es estrictamente necesario. Es un riesgo de seguridad enorme. Limita el acceso solo a las IPs de tus aplicaciones.

Paso 3: Crear un usuario de MySQL con permisos remotos

A veces, el usuario que has creado en Syspanel solo tiene permisos para conectarse desde localhost. Si tu aplicación está en otro servidor, necesitas un usuario con permisos para conectarse desde un host remoto.

  1. Conéctate a MySQL como root desde la terminal:
sudo mysql
  1. Ejecuta el siguiente comando para crear un nuevo usuario (o modificar el existente) que pueda conectarse desde cualquier host o desde una IP específica:
CREATE USER 'nuevo_usuario'@'IP_DE_TU_APLICACION' IDENTIFIED BY 'contraseña_segura';
GRANT ALL PRIVILEGES ON *.* TO 'nuevo_usuario'@'IP_DE_TU_APLICACION' WITH GRANT OPTION;
FLUSH PRIVILEGES;

O si prefieres que se conecte desde cualquier lugar (menos seguro):

CREATE USER 'nuevo_usuario'@'%' IDENTIFIED BY 'contraseña_segura';
GRANT ALL PRIVILEGES ON *.* TO 'nuevo_usuario'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

[TIP]
Siempre es mejor usar una IP específica en lugar de %. Si tu aplicación tiene una IP fija, úsala. Esto reduce el riesgo de accesos no autorizados.

Paso 4: Verificar que tu aplicación usa el host correcto

Este paso es más común de lo que parece. Si has configurado MySQL para aceptar conexiones remotas y tu firewall está abierto, pero aún así recibes el error, el problema está en cómo tu aplicación se conecta.

  • Si tu aplicación está en el mismo servidor que la base de datos, usa localhost como host. No uses la IP pública.
  • Si tu aplicación está en un servidor diferente, usa la IP pública o privada del servidor de bases de datos. No uses localhost.

Paso 5: Comprobar la configuración de Syspanel

Aunque Syspanel no gestiona directamente la configuración de red de MySQL, a veces tiene su propia capa de seguridad.

  1. En tu panel de Syspanel (puerto 2106), ve a la sección de "Bases de Datos".
  2. Haz clic en la base de datos que estás usando.
  3. Busca una opción que diga "Acceso remoto" o "Host".
  4. Asegúrate de que esté habilitado o que incluya la IP de tu aplicación. Algunos paneles permiten añadir hosts remotos a la lista blanca.

[INFO]
Cada versión de Syspanel puede tener una interfaz ligeramente diferente. Si no encuentras esta opción, consulta la documentación oficial de tu proveedor o contacta con su soporte.

Errores comunes relacionados y sus soluciones rápidas

Aquí tienes una pequeña tabla con otros errores que podrías encontrar y cómo solucionarlos:

ErrorCausa probableSolución rápida
Access denied for user 'x'@'y'Usuario o contraseña incorrectos, o sin permisos.Revisa las credenciales y los permisos del usuario (Paso 3).
Unknown database 'x'El nombre de la base de datos es incorrecto.Verifica el nombre exacto en Syspanel.
Can't connect to MySQL server on 'x' (timed out)El firewall está bloqueando el puerto o la IP es inalcanzable.Revisa el firewall (Paso 2) y la conectividad de red.
mysql socket not foundEl servicio MySQL no está corriendo.Reinicia el servicio (Paso 1).

Preguntas Frecuentes (FAQ)

P: ¿Puedo usar el mismo usuario de MySQL para conectarme desde local y desde remoto?
R: Sí, pero necesitas crear dos usuarios diferentes: uno para localhost y otro para la IP remota. No puedes tener un usuario con dos hosts diferentes a menos que uses comodines o configures ambos explícitamente.

P: ¿Es seguro abrir el puerto 3306?
R: No es recomendable abrirlo a todo el mundo. Si lo haces, asegúrate de usar contraseñas muy fuertes y de limitar el acceso por IP en el firewall. La alternativa más segura es usar un túnel SSH o una VPN.

P: Mi aplicación está en el mismo servidor que MySQL, pero aún así me da "Connection refused". ¿Qué hago?
R: Si estás en el mismo servidor, el problema suele ser que MySQL no está escuchando en localhost. Revisa que el servicio esté activo y que en el archivo de configuración bind-address esté puesto 127.0.0.1 o que no esté comentado.

P: He cambiado la configuración de MySQL, pero sigue sin funcionar. ¿Qué más puedo hacer?
R: Asegúrate de que has reiniciado el servicio MySQL después de cualquier cambio. También puedes revisar los logs de MySQL en /var/log/mysql/error.log para ver mensajes más detallados.

Conclusión

El error syspanel mysql conexión o solucionar connection refused syspanel puede parecer complicado, pero como has visto, siguiendo estos pasos lógicos, podrás resolverlo en la mayoría de los casos. La clave está en verificar el estado del servicio, la configuración de red de MySQL, el firewall y los datos de conexión de tu aplicación.

Recuerda que la seguridad es lo primero. No expongas tu base de datos a internet sin tomar las precauciones necesarias. Si después de todos estos pasos el error persiste, no dudes en contactar con el soporte técnico de tu proveedor de hosting, ya que puede haber un problema a nivel de infraestructura que no puedas ver desde tu panel.

Con un poco de paciencia y estos consejos, tu aplicación volverá a estar en línea en muy poco tiempo. ¡Mucha suerte!

¿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