Cómo solucionar el error 'Connection refused' en MySQL (cPanel y Plesk)
¿Qué significa el error "Connection refused" en MySQL?
Cuando intentas conectar tu web o aplicación a tu base de datos y ves el mensaje "Connection refused", significa que el servidor MySQL está rechazando activamente la conexión. No es que no te encuentre, es que te está diciendo "no quiero hablar contigo" o "no estoy escuchando en este puerto".
Este error es uno de los más comunes cuando trabajamos con bases de datos en cPanel o Plesk, y suele aparecer de repente, muchas veces después de un cambio de configuración, una actualización o un reinicio del servidor.
La buena noticia es que, en la mayoría de los casos, tiene solución y no requiere conocimientos avanzados de administración de sistemas. Vamos a ver paso a paso cómo diagnosticarlo y solucionarlo, tanto en cPanel como en Plesk.
¿Por qué aparece el error "connection refused mysql"?
Antes de lanzarnos a solucionar, es importante entender las causas más comunes. Esto te ayudará a identificar rápidamente qué está pasando:
- El servicio MySQL/MariaDB está caído: Es la causa más frecuente. El servidor de bases de datos no está ejecutándose.
- El puerto está bloqueado: MySQL usa por defecto el puerto 3306. Si un firewall o una regla de seguridad lo bloquea, la conexión será rechazada.
- MySQL solo escucha en localhost: A veces la configuración limita las conexiones solo a 127.0.0.1, y si intentas conectar desde fuera, recibirás este error.
- Límite de conexiones alcanzado: Si hay demasiadas conexiones activas, MySQL rechaza nuevas peticiones.
- El archivo de configuración tiene errores: Un
my.cnfomy.inimal configurado puede impedir que el servicio arranque. - Permisos incorrectos en los archivos de datos: Si los permisos de las carpetas de MySQL son incorrectos, el servicio no podrá iniciarse.
Ahora vamos con las soluciones, divididas por panel de control.
Cómo solucionar el error MySQL en cPanel
cPanel es uno de los paneles más usados en hosting compartido y VPS. Si estás viendo el error mysql connection refused, sigue estos pasos en orden.
Paso 1: Reiniciar el servicio MySQL desde WHM
Si tienes acceso a WHM (el panel de administración de cPanel), el primer paso es comprobar si el servicio está activo.
- Accede a tu WHM (normalmente en
https://tu-servidor:2087). - Ve a "Restart Services" en el menú lateral.
- Busca "MySQL Server" o "MariaDB".
- Haz clic en "Restart".
[INFO] Si el servicio no arranca, anota el mensaje de error que aparece. Ese mensaje es oro puro para el siguiente paso.
Paso 2: Revisar el archivo de logs de MySQL
Si el reinicio no funciona, necesitas ver el log de errores. En cPanel, los logs suelen estar en:
/var/lib/mysql/(con nombre de archivo comohostname.err)/var/log/mysql/error.log
Puedes acceder por SSH y ejecutar:
tail -n 50 /var/lib/mysql/*.err
Los errores típicos en el log incluyen:
- "Can't start server: Bind on TCP/IP port": El puerto está ocupado.
- "Permission denied": Problemas de permisos.
- "Table 'mysql.user' doesn't exist": La base de datos del sistema está corrupta.
Paso 3: Comprobar el puerto 3306
A veces el error mysql connection refused aparece porque el puerto está bloqueado. Comprueba si MySQL está escuchando:
netstat -tlnp | grep 3306
Si no ves ninguna línea, MySQL no está escuchando. Si ves 127.0.0.1:3306, solo acepta conexiones locales.
Para permitir conexiones remotas (si es necesario), edita el archivo /etc/my.cnf o /etc/my.cnf.d/server.cnf y busca la línea:
bind-address = 127.0.0.1
Cámbiala por:
bind-address = 0.0.0.0
[WARNING] Cambiar esto a
0.0.0.0expone MySQL a la red. Asegúrate de tener un firewall configurado correctamente.
Paso 4: Verificar el firewall
En cPanel, el firewall suele ser CSF (ConfigServer Security & Firewall). Comprueba si el puerto 3306 está permitido:
csf -g 3306
Si no aparece, añádelo:
csf -a 3306
Y luego recarga:
csf -r
Paso 5: Reparar tablas corruptas
Si el servicio arranca pero las bases de datos dan error, puede haber tablas corruptas. Desde WHM, ve a "MySQL Repair" y selecciona las bases de datos a reparar.
Cómo solucionar el error MySQL en Plesk
Plesk tiene su propia estructura, pero la lógica es similar. Vamos a ver los pasos específicos para este panel.
Paso 1: Reiniciar desde Plesk
- Accede a tu Plesk (normalmente en
https://tu-servidor:8443). - Ve a "Herramientas y configuración".
- Busca la sección "Servicios" y haz clic en "Administración de servicios".
- Localiza "MySQL" o "MariaDB".
- Haz clic en el botón de reiniciar.
Paso 2: Usar el comando systemctl
Si el panel no responde, usa SSH:
systemctl restart mariadb
O si usas MySQL puro:
systemctl restart mysql
Para ver el estado:
systemctl status mariadb
Paso 3: Revisar el archivo de configuración en Plesk
En Plesk, el archivo de configuración suele estar en /etc/my.cnf o /etc/mysql/my.cnf.
Un error común es que el archivo tenga una directiva skip-networking activada. Si aparece esa línea, MySQL solo escucha en socket local y rechazará cualquier conexión TCP.
Búscala y elimínala o coméntala con # al inicio:
# skip-networking
Paso 4: Comprobar los permisos de las carpetas
En Plesk, los datos de MySQL suelen estar en /var/lib/mysql. Los permisos deben ser mysql:mysql.
chown -R mysql:mysql /var/lib/mysql
chmod -R 755 /var/lib/mysql
Paso 5: Aumentar el límite de conexiones
Si el error aparece cuando tienes mucho tráfico, puede ser el límite de conexiones. En el archivo my.cnf, busca:
max_connections = 150
Auméntalo a 300 o más, dependiendo de la memoria de tu servidor.
Soluciones comunes para ambos paneles
Hay algunos pasos que funcionan tanto en cPanel como en Plesk.
Comprobar el espacio en disco
Un disco lleno puede impedir que MySQL arranque. Verifica con:
df -h
Si el disco está al 100%, libera espacio. Los logs suelen ser los culpables.
Revisar la memoria RAM
MySQL necesita memoria. Si tu servidor no tiene suficiente RAM, el servicio puede caerse. Comprueba con:
free -m
Si la memoria está al límite, considera aumentar el swap o cerrar procesos innecesarios.
Probar la conexión manualmente
Después de los pasos anteriores, prueba la conexión localmente:
mysql -u root -p
Si esto funciona, el problema es de red o de configuración remota. Si no funciona, sigue investigando.
Errores específicos y sus soluciones rápidas
Error: "Can't connect to local MySQL server through socket"
Esto significa que el socket no está disponible. Verifica que el archivo /var/run/mysqld/mysqld.sock exista y tenga permisos correctos.
Error: "Access denied for user 'usuario'@'localhost'"
No es un problema de conexión, sino de credenciales. Revisa el usuario y contraseña, y que tengas permisos desde el host correspondiente.
Error: "Too many connections"
Aumenta max_connections en my.cnf y reinicia el servicio.
Consejos para prevenir el error en el futuro
- Activa monitoreo: Tanto cPanel como Plesk tienen herramientas de monitoreo. Actívalas para que te avisen si MySQL se cae.
- Programa reinicios automáticos: Configura un cron que verifique si MySQL está activo y lo reinicie si no lo está.
- Mantén actualizado el sistema: Las actualizaciones corrigen bugs que pueden causar caídas.
- Haz copias de seguridad: Esto no evita el error, pero te salvará si necesitas restaurar datos.
[TIP] Si usas Syspanel (antes conocido como HestiaCP), el puerto de acceso es el 2106. Este panel también puede presentar el error mysql connection refused, y las soluciones son muy similares: reiniciar el servicio con
systemctl restart mariadby revisar el archivo/etc/my.cnf. La diferencia es que en Syspanel puedes gestionar las bases de datos desde su interfaz web en ese puerto, lo que facilita el diagnóstico.
Preguntas frecuentes (FAQ)
¿Puedo solucionar el error sin acceso SSH?
Si solo tienes acceso al panel (cPanel o Plesk), puedes intentar reiniciar desde la interfaz. Si el servicio no arranca, necesitarás SSH o contactar con tu proveedor de hosting.
¿El error "connection refused mysql" puede deberse a un ataque?
Sí, en algunos casos un ataque DDoS o fuerza bruta puede saturar MySQL. Revisa los logs de acceso y el firewall.
¿Cuánto tiempo se tarda en solucionar?
Depende de la causa. Si es solo reiniciar el servicio, unos minutos. Si hay que reparar tablas, puede llevar más tiempo.
¿Perderé mis datos si reinicio MySQL?
No, reiniciar el servicio no borra datos. Solo detiene y arranca el proceso. La pérdida de datos solo ocurre si hay corrupción grave, y en ese caso las copias de seguridad son tu salvación.
¿Debo contactar con mi proveedor de hosting?
Si has probado todos los pasos y no funciona, sí. Ellos tienen acceso de nivel raíz y pueden diagnosticar problemas más profundos.
Resumen final
El error "Connection refused" en MySQL puede parecer intimidante, pero en la mayoría de los casos se soluciona con un reinicio del servicio o un ajuste en la configuración. Tanto en cPanel como en Plesk, los pasos son similares:
- Reinicia el servicio.
- Revisa los logs.
- Verifica que el puerto 3306 esté abierto.
- Comprueba la configuración de red.
- Ajusta los permisos y límites.
Si todo falla, no dudes en contactar con tu proveedor. Recuerda que la prevención es la mejor herramienta: monitoriza tu servidor y mantén copias de seguridad actualizadas.
[WARNING] No cambies configuraciones avanzadas sin saber lo que haces. Un error en
my.cnfpuede dejar tu servidor sin acceso a bases de datos. Si no estás seguro, pide ayuda profesional.
Con estos pasos, podrás resolver el error mysql connection refused y volver a tener tu web funcionando en poco tiempo.
