Cómo solucionar el error 'Connection refused' en bases de datos de Plesk
¡Hola! Soy tu técnico de soporte amigable. Hoy vamos a resolver uno de los errores más comunes y frustrantes que puedes encontrar en tu servidor Plesk: el temido error "Connection refused" cuando intentas conectar con tu base de datos.
No te preocupes. Este mensaje suena alarmante, pero en la gran mayoría de los casos se soluciona en pocos minutos siguiendo pasos muy sencillos. Vamos a desglosarlo como si fuéramos un equipo de detectives informáticos.
¿Qué significa exactamente el error "Connection refused"?
Imagina que tu sitio web o aplicación necesita hablar con la base de datos para obtener información (como usuarios, productos o comentarios). Para eso, tu web envía un "mensaje" a un puerto específico de tu servidor, donde la base de datos está escuchando.
El error "Connection refused" significa literalmente que cuando tu web intentó tocar la puerta de ese puerto, la base de datos le respondió: "Lo siento, no puedo atenderte ahora. No estoy disponible para conectarme".
Esto puede deberse a varias razones:
- El servicio de base de datos (MySQL/MariaDB) no está funcionando.
- El puerto de conexión está bloqueado por un firewall.
- La base de datos está sobrecargada o se ha quedado sin recursos.
- Hay un problema de configuración en Plesk o en los permisos de conexión.
Vamos a ver cómo diagnosticar y solucionar cada una de estas causas paso a paso.
Paso 1: Verificar el estado del servicio de base de datos
Lo primero es comprobar si el motor de base de datos está vivo. En Plesk, lo más común es que uses MySQL o MariaDB.
Accede a tu servidor por SSH
Necesitarás acceso root o de administrador al servidor. Si no tienes SSH, puedes pedirle a tu proveedor de hosting que lo haga.
ssh root@tu-servidor.com
Comprueba el estado del servicio
Ejecuta este comando para ver si MySQL/MariaDB está funcionando:
systemctl status mysql
o si usas MariaDB:
systemctl status mariadb
¿Qué deberías ver? Un mensaje verde que diga "active (running)". Si ves "inactive (dead)" o "failed", el servicio se ha detenido.
[WARNING] Si el comando
systemctlno funciona, prueba conservice mysql statusoservice mariadb statusen sistemas más antiguos.
Reinicia el servicio
Si está detenido, reinícialo con:
systemctl restart mysql
o
systemctl restart mariadb
Después de reiniciar, vuelve a comprobar el estado. Si sigue sin arrancar, revisa los logs para ver el motivo exacto:
journalctl -u mysql -n 50
Paso 2: Revisar el puerto y el firewall
El error "Connection refused" también puede aparecer si el puerto de la base de datos (por defecto el 3306 para MySQL) está bloqueado por el firewall del servidor.
Comprueba si el puerto está escuchando
Ejecuta:
netstat -tlnp | grep 3306
o si no tienes netstat:
ss -tlnp | grep 3306
Deberías ver una línea como:
tcp LISTEN 0 70 *:3306 *:* users:(("mysqld",pid=1234,fd=14))
Si no aparece nada, el servicio no está escuchando en ese puerto.
Revisa las reglas del firewall
Si usas ufw (común en Ubuntu/Debian):
ufw status
Asegúrate de que el puerto 3306 esté permitido. Si no, agrégalo:
ufw allow 3306
Si usas firewalld (común en CentOS/RHEL):
firewall-cmd --list-all
Si no aparece el puerto 3306, añádelo:
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
[TIP] Si tu base de datos solo debe ser accesible desde el servidor local (localhost), no necesitas abrir el puerto al exterior. En ese caso, verifica que la configuración de MySQL solo escuche en 127.0.0.1. Lo veremos en el siguiente paso.
Paso 3: Configuración de MySQL/MariaDB para conexiones locales
A veces, el problema es que MySQL está configurado para escuchar solo en una IP incorrecta o no está permitiendo conexiones desde localhost.
Edita el archivo de configuración
Abre el archivo principal 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. Debería verse así para permitir solo conexiones locales:
bind-address = 127.0.0.1
Si ves 0.0.0.0, está escuchando en todas las interfaces, lo cual no es recomendado por seguridad, pero podría funcionar. Si ves otra IP, cámbiala a 127.0.0.1.
Verifica los permisos de usuario en la base de datos
A veces, el usuario de la base de datos no tiene permiso para conectarse desde el host correcto. En Plesk, normalmente se usa localhost. Puedes comprobarlo desde la base de datos:
SELECT user, host FROM mysql.user WHERE user = 'tu_usuario';
Si el host es % (cualquier host), está bien para conexiones remotas, pero para localhost debería ser localhost.
[INFO] Si necesitas cambiar el host de un usuario, hazlo con:
RENAME USER 'tu_usuario'@'%' TO 'tu_usuario'@'localhost';Luego ejecuta
FLUSH PRIVILEGES;.
Paso 4: Errores de conexión desde aplicaciones web
Si tu sitio web (WordPress, Joomla, etc.) da el error "Connection refused", el problema suele estar en los archivos de configuración de la aplicación.
Revisa el archivo de configuración
Por ejemplo, en WordPress es wp-config.php. Busca estas líneas:
define('DB_HOST', 'localhost');
Asegúrate de que sea localhost o 127.0.0.1. Si pusiste una IP externa o un dominio, cámbialo.
Verifica credenciales
A veces, el usuario o la contraseña son incorrectos. Vuelve a generar las credenciales desde Plesk:
- Ve a Herramientas y Configuración > Administrador de bases de datos.
- Selecciona la base de datos problemática.
- Haz clic en Cambiar contraseña y actualiza el archivo de tu web.
Paso 5: Problemas de recursos y sobrecarga
Un servidor con poca memoria RAM o CPU puede rechazar conexiones. Esto es común en planes de hosting compartido o VPS pequeños.
Monitorea el uso de recursos
Desde SSH:
top -b -n1 | grep -E "mysql|mariadb"
Si ves que MySQL consume más del 80% de la RAM, es posible que necesites optimizar consultas o aumentar los recursos del servidor.
Aumenta los límites de conexión
Edita el archivo de configuración de MySQL y busca:
max_connections = 150
Aumenta este valor (por ejemplo a 300) y reinicia el servicio.
Paso 6: Soluciones avanzadas (si nada funciona)
Si has seguido todos los pasos y el error persiste, prueba estas opciones:
Revisa los logs de error de MySQL
tail -100 /var/log/mysql/error.log
Busca mensajes como "Out of memory", "Can't create thread" o "Too many connections".
Repara la base de datos
Desde Plesk, ve a Bases de Datos, selecciona la base de datos y haz clic en Reparar. O desde SSH:
mysqlcheck -u root -p --auto-repair --all-databases
Reinstala el servicio de base de datos
Como último recurso, puedes reinstalar MySQL/MariaDB. Pero haz un backup completo antes:
mysqldump -u root -p --all-databases > backup.sql
[WARNING] Reinstalar el servicio puede borrar configuraciones personalizadas. Asegúrate de tener todo respaldado.
Preguntas frecuentes (FAQ)
¿El error "Connection refused" puede deberse a un plugin de seguridad?
Sí. Algunos plugins de firewall como ModSecurity o CSF pueden bloquear conexiones. Revisa sus logs.
¿Qué hago si no tengo acceso SSH?
Pide a tu proveedor de hosting que ejecute los pasos 1 y 2. También puedes usar el panel de control de Plesk para reiniciar servicios desde Herramientas y Configuración > Servicios.
¿Afecta esto a todos los sitios de mi servidor?
Sí, si el problema es del servicio de base de datos, todos los sitios que usen bases de datos en ese servidor se verán afectados.
¿Puedo evitar este error en el futuro?
Sí. Programa revisiones periódicas de recursos, mantén actualizado Plesk y los servicios, y configura alertas de monitoreo (por ejemplo, con herramientas como Nagios o Zabbix).
Resumen rápido
- Verifica el servicio:
systemctl status mysql. - Reinicia si es necesario:
systemctl restart mysql. - Comprueba el puerto:
netstat -tlnp | grep 3306. - Abre el firewall:
ufw allow 3306. - Revisa la configuración:
bind-address = 127.0.0.1. - Actualiza credenciales en tu aplicación web.
- Monitorea recursos y ajusta límites.
Si después de todo esto el error "Connection refused" sigue apareciendo, no dudes en contactar a tu proveedor de hosting o a un técnico especializado. A veces, el problema está en la infraestructura del propio servidor.
[TIP] Recuerda que en Syspanel (antes conocido como HestiaCP), el puerto de acceso es el 2106. Si estás migrando desde Syspanel a Plesk, asegúrate de que las configuraciones de base de datos apunten al puerto correcto.
Espero que esta guía te haya sido de gran ayuda. ¡Ya eres todo un experto en solucionar el error "Connection refused" en Plesk! Si tienes más dudas, aquí estoy para ayudarte.
