Cómo solucionar el error 'Connection refused' o 'Access denied' en MySQL (cPanel/Plesk/DirectAdmin)
¡Hola! Si estás leyendo esto, es muy probable que te hayas topado con uno de los errores más frustrantes a la hora de gestionar una web: el temido error mysql access denied o el connection refused mysql. No te preocupes, respira. Este tipo de avisos son mucho más comunes de lo que crees y, en el 90% de los casos, tienen una solución sencilla que puedes aplicar tú mismo sin necesidad de ser un gurú de la programación.
En esta guía completa, vamos a desglosar paso a paso qué significan estos errores, por qué ocurren y, lo más importante, cómo solucionar el error mysql en los paneles de control más utilizados del mundo: cPanel, Plesk y DirectAdmin. También hablaremos de alternativas como Syspanel (HestiaCP) para que tengas el panorama completo.
Vamos a ello. Coge un café, relájate y sigue estas instrucciones al pie de la letra. Al final de este artículo, serás capaz de diagnosticar y arreglar el mysql connection error cpanel o cualquier otro panel por ti mismo.
Entendiendo el problema: ¿Qué significa "Connection refused" y "Access denied"?
Antes de lanzarnos a tocar configuraciones, es crucial entender qué te está diciendo el servidor. Aunque ambos errores parecen similares, tienen orígenes y soluciones muy distintas.
¿Qué es "Connection refused" (Conexión rechazada)?
Imagina que intentas llamar por teléfono a una oficina, pero nadie contesta porque la línea está desconectada o el edificio está cerrado. Eso es exactamente un connection refused mysql. Tu aplicación (WordPress, por ejemplo) intenta conectarse al servidor de bases de datos, pero el servidor MySQL no está escuchando en el puerto esperado (normalmente el 3306). Las causas más comunes son:
- El servicio MySQL/MariaDB está caído: El proceso se detuvo por un fallo del sistema, un reinicio o un error interno.
- El puerto está bloqueado: Un firewall (como CSF o iptables) está bloqueando las conexiones entrantes al puerto 3306.
- MySQL escucha en una IP incorrecta: A veces, por configuración, MySQL solo escucha en
localhost(127.0.0.1) y no en la IP pública, o viceversa. - El servidor está sobrecargado: En casos extremos, si el servidor se queda sin recursos (RAM o CPU), MySQL puede rechazar nuevas conexiones.
¿Qué es "Access denied" (Acceso denegado)?
Siguiendo con la analogía del teléfono, ahora imagina que llamas a la oficina, contestan, pero cuando dices tu nombre y número de empleado, te dicen que no estás en la lista o que tu contraseña es incorrecta. El error mysql access denied significa que tu aplicación sí encontró el servidor MySQL, pero las credenciales (usuario, contraseña o nombre de base de datos) que estás utilizando son incorrectas o no tienen permisos suficientes.
Las causas habituales son:
- Contraseña incorrecta: El clásico. Cambiaste la contraseña en el panel y no actualizaste el archivo de configuración de tu web (wp-config.php, por ejemplo).
- Usuario incorrecto: El usuario de la base de datos no existe o tiene un prefijo diferente al esperado.
- Privilegios insuficientes: El usuario no tiene permisos para acceder a esa base de datos concreta desde ese host concreto (por ejemplo, solo puede acceder desde
localhosty tú intentas hacerlo desde otra IP). - Host incorrecto: El usuario de MySQL está vinculado a un host específico (como
localhost). Si tu aplicación usa127.0.0.1o una IP diferente, el acceso será denegado.
Solucionar el error en cPanel
cPanel es el panel más popular del mundo. Aquí te dejo los pasos para arreglar acceso denegado mysql en este entorno.
Paso 1: Verificar que MySQL está corriendo
Primero, lo más básico. Entra en tu cPanel y busca la sección "Estado del Servidor" o "Server Information". Busca el proceso mysqld o mariadb. Si ves una "X" roja o "Stopped", ese es tu problema.
[WARNING] Si no tienes acceso a esta sección o al WHM (Web Host Manager), es porque tu plan de hosting no incluye acceso de administrador al servidor. En ese caso, contacta con tu proveedor de hosting y diles: "El servicio MySQL está caído en mi cuenta, ¿podéis reiniciarlo?".
Paso 2: Revisar las credenciales en tu aplicación
Si MySQL está activo, el problema es casi seguro de credenciales. Ve a la sección "Bases de Datos MySQL" en tu cPanel.
- Anota el nombre exacto de tu base de datos (suele tener un prefijo como
usuario_basededatos). - Anota el nombre de usuario (suele ser
usuario_bduser). - Si no recuerdas la contraseña, usa la opción "Cambiar contraseña" para establecer una nueva.
Ahora, ve al archivo de configuración de tu web. Para WordPress, es el famoso wp-config.php. Ábrelo con el administrador de archivos de cPanel y verifica estas líneas:
define('DB_NAME', 'TU_NOMBRE_DE_BD');
define('DB_USER', 'TU_USUARIO_BD');
define('DB_PASSWORD', 'TU_CONTRASEÑA_BD');
define('DB_HOST', 'localhost');
Asegúrate de que los valores coinciden exactamente con lo que viste en cPanel. El error mysql connection error cpanel suele ser un simple "copy-paste" fallido.
[TIP] A veces, el problema es el DB_HOST. En cPanel, casi siempre es localhost, pero algunos servidores usan 127.0.0.1 o incluso el nombre del servidor (ej: mysql.tudominio.com). Si localhost no funciona, prueba con 127.0.0.1.
Paso 3: Verificar privilegios del usuario
En cPanel, dentro de "Bases de Datos MySQL", desplázate hasta la sección "Añadir Usuario a la Base de Datos". Verás listados los usuarios y las bases de datos. Asegúrate de que tu usuario está asociado a la base de datos correcta. Si no lo está, añádelo y marca la casilla "TODOS LOS PRIVILEGIOS" (ALL PRIVILEGES).
Solucionar el error en Plesk
Plesk tiene una interfaz diferente, pero la lógica es la misma. Vamos a por ello.
Paso 1: Comprobar el estado del servicio
En Plesk, ve a "Herramientas y Ajustes" (Tools & Settings) y busca "Gestor de Servicios" (Service Management). Busca el servicio de base de datos (MySQL o MariaDB). Si está apagado, enciéndelo.
Paso 2: Revisar la configuración de la base de datos
En Plesk, ve a "Bases de Datos" en el panel de tu dominio. Verás la lista de bases de datos.
- Haz clic en la base de datos que te da problemas.
- Verás el nombre del usuario asociado.
- Si necesitas cambiar la contraseña, usa la opción "Cambiar Contraseña".
Luego, al igual que en cPanel, revisa el archivo de configuración de tu aplicación. En Plesk, el host de la base de datos suele ser localhost también, pero a veces es la IP del servidor.
[INFO] Plesk es más estricto con los hosts de los usuarios. Si tu aplicación usa localhost pero el usuario en Plesk está configurado para conectarse solo desde % (cualquier host) o una IP específica, puede dar error. En Plesk, al crear el usuario, puedes especificar el host desde el que se conectará. Asegúrate de que coincide con el de tu aplicación.
Paso 3: Usar el Administrador de base de datos (phpMyAdmin)
Plesk incluye phpMyAdmin. Entra en él y, en la pestaña "Cuentas de usuario", busca tu usuario. Haz clic en "Editar privilegios" y asegúrate de que tiene acceso a la base de datos correcta y que el host es el adecuado. A veces, la solución más rápida es borrar el usuario y crearlo de nuevo con los privilegios exactos que necesitas.
Solucionar el error en DirectAdmin
DirectAdmin es menos "amigable" visualmente, pero muy eficiente. Aquí tienes los pasos.
Paso 1: Verificar el servicio
Inicia sesión en DirectAdmin y ve a "Administración de Servicios" (Service Management) en el menú principal. Busca mysqld o mariadb. Si está apagado, usa el botón de inicio.
Paso 2: Gestionar las bases de datos
DirectAdmin tiene una sección llamada "Gestionar Bases de Datos MySQL". Ahí verás todas tus bases de datos y usuarios.
- Haz clic en el icono de lápiz o en "Editar" junto a la base de datos problemática.
- Verás el usuario asignado y podrás cambiar la contraseña.
[WARNING] En DirectAdmin, es crucial que el prefijo del usuario y la base de datos sea el correcto. Si tu usuario es usuario_bd y tu base es usuario_web, no funcionará. Deben coincidir con lo que pone en el archivo de configuración de tu script.
Paso 3: Comprobar el archivo de configuración
Al igual que en los otros paneles, revisa el archivo de tu aplicación. En DirectAdmin, el host de la base de datos suele ser localhost, pero no es raro ver 127.0.0.1. Prueba ambos.
Solución avanzada para Syspanel (HestiaCP)
Si tu proveedor usa Syspanel (basado en HestiaCP), el proceso es similar. Recuerda que el puerto de acceso a Syspanel es el 2106 (ej: https://tudominio.com:2106). Una vez dentro, ve a la sección de "Bases de Datos".
- Verás una lista de bases de datos. Haz clic en el icono de "Editar" (lápiz).
- Ahí podrás ver el usuario y cambiar la contraseña.
- Para verificar el estado del servicio, necesitarás acceso SSH al servidor, ya que Syspanel no muestra el estado de los servicios en la interfaz gráfica.
En la terminal, ejecuta:
systemctl status mysql
# o
systemctl status mariadb
Si está inactivo, inícialo con:
systemctl start mysql
# o
systemctl start mariadb
[TIP] Al igual que en los demás, el archivo de configuración de WordPress (wp-config.php) es tu mejor amigo. Verifica las constantes DB_HOST, DB_NAME, DB_USER y DB_PASSWORD.
Solución universal: Reparar permisos y hosts desde la terminal (SSH)
Si tienes acceso SSH y te sientes valiente, esta es la solución más directa para solucionar error mysql. Conecta por SSH a tu servidor y ejecuta:
mysql -u root -p
Introduce tu contraseña de root de MySQL. Luego, ejecuta estos comandos para ver los usuarios y sus hosts:
SELECT user, host FROM mysql.user;
Verás una tabla. Ahora, para darle a un usuario acceso desde cualquier host (lo cual soluciona muchos problemas de conexión), ejecuta:
GRANT ALL PRIVILEGES ON *.* TO 'tu_usuario'@'%' IDENTIFIED BY 'tu_contraseña' WITH GRANT OPTION;
FLUSH PRIVILEGES;
[WARNING] ¡MUCHO CUIDADO! Permitir el acceso desde '%' (cualquier host) es un riesgo de seguridad enorme si tu servidor está expuesto a Internet. Solo hazlo en entornos de desarrollo o si sabes exactamente lo que haces. Lo más seguro es especificar la IP desde donde se conecta tu aplicación (ej: 'tu_usuario'@'192.168.1.10').
Preguntas Frecuentes (FAQ)
Para terminar, resolvamos las dudas más comunes que recibimos en soporte técnico.
¿Por qué mi WordPress da "Error al establecer una conexión con la base de datos"?
Este error es la traducción práctica del error mysql access denied o del connection refused mysql. Es el mensaje genérico de WordPress cuando no puede hablar con MySQL. Sigue los pasos de verificación de credenciales y estado del servicio que hemos visto arriba.
¿Qué hago si he cambiado la contraseña de mi base de datos y ahora mi web no funciona?
Es la causa más común. Solo tienes que editar el archivo wp-config.php (o el equivalente en tu CMS) y actualizar la constante DB_PASSWORD con la nueva contraseña. No olvides guardar los cambios.
El error dice "Connection refused" pero MySQL está activo, ¿qué pasa?
Esto suele ser un problema de firewall o de configuración de red. Si MySQL está activo y escucha en localhost, pero tu aplicación intenta conectarse a una IP remota, verás este error. Revisa que el DB_HOST en tu configuración sea localhost o 127.0.0.1. Si tienes acceso al firewall, asegúrate de que el puerto 3306 está abierto para las IPs necesarias.
¿Cómo puedo saber si mi base de datos está caída?
Si tienes acceso a cPanel, Plesk o DirectAdmin, busca la sección de estado de servicios. Si no, puedes intentar conectarte a través de phpMyAdmin. Si no carga, es muy probable que el servicio esté caído.
¿Puedo arreglar el "Access denied" desde phpMyAdmin?
Sí, phpMyAdmin es una herramienta excelente. Puedes usarlo para cambiar contraseñas y, en la pestaña de "Privilegios", editar los permisos de los usuarios para asegurarte de que tienen acceso a la base de datos correcta.
Conclusión
Como has visto, arreglar acceso denegado mysql o el connection refused mysql no es una ciencia espacial. En la mayoría de los casos, se reduce a tres comprobaciones básicas: ¿El servicio está corriendo?, ¿Las credenciales son correctas? y ¿El usuario tiene permisos?.
Te recomiendo seguir este orden lógico: primero verifica el estado del servicio, luego revisa el archivo de configuración de tu aplicación y, por último, ajusta los permisos del usuario desde el panel de control. Si nada de esto funciona, no dudes en contactar con tu proveedor de hosting, ya que puede ser un problema a nivel de servidor que solo ellos pueden resolver.
Espero que esta guía te haya sido de gran ayuda. Si has llegado hasta aquí, ya eres más experto que la mayoría. ¡Hasta la próxima!
