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

Cómo solucionar el error 'Connection refused' o 'Access denied' en MySQL (cPanel, Plesk, WordPress)

Actualizado el 12 de marzo de 2026

¿Qué significa exactamente “Connection refused” o “Access denied” en MySQL?

Cuando intentas conectar tu sitio web (WordPress, por ejemplo) a su base de datos, el servidor MySQL recibe una solicitud. Si algo falla en ese proceso, verás uno de estos dos errores en pantalla. Aunque parecen similares, indican problemas distintos:

  • Connection refused (Conexión rechazada): El servidor MySQL no está escuchando en el puerto esperado (normalmente el 3306). Es como llamar a la puerta de una oficina que está cerrada y con las luces apagadas. El servidor de base de datos no está disponible o no acepta conexiones desde donde intentas entrar.
  • Access denied (Acceso denegado): El servidor MySQL sí está activo y escuchando, pero rechaza tus credenciales (usuario, contraseña o ambos). Es como si llamaras a la puerta, te abrieran, pero no te reconocieran y te dijeran que no puedes pasar.

Ambos errores son de los más frustrantes para cualquier persona que gestiona un hosting, ya que dejan tu web completamente caída. La buena noticia es que, en la mayoría de los casos, tienen solución y no requieren ser un experto en servidores.


Errores comunes que verás en WordPress y otras aplicaciones

Antes de entrar en materia, es útil que identifiques el mensaje exacto que te aparece. Según el sistema, verás algo así:

  • Error establishing a database connection (WordPress).
  • ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061).
  • ERROR 1045 (28000): Access denied for user 'usuario'@'localhost' (using password: YES).
  • mysqli::real_connect(): (HY000/2002): Connection refused.
  • Access denied for user 'admin'@'localhost' (using password: YES).

Tener el mensaje exacto te ayudará a decidir cuál de los pasos de esta guía seguir primero.


Paso 1: Verifica el estado del servicio MySQL o MariaDB

Lo primero es comprobar si el servicio de base de datos está corriendo. Si estás en un hosting compartido (cPanel o Plesk), no siempre tienes acceso al terminal, pero puedes hacerlo desde el panel.

En cPanel (la mayoría de hostings compartidos)

  1. Entra a tu panel de control de cPanel.
  2. Busca la sección "Base de Datos MySQL" o "MySQL Databases".
  3. Si ves un mensaje de error al entrar, o si la lista de bases de datos aparece vacía, es probable que el servicio esté caído.
  4. En ese caso, abre un ticket de soporte con tu proveedor de hosting inmediatamente. No puedes reiniciar MySQL desde cPanel, pero ellos sí pueden hacerlo en segundos.

[WARNING] No intentes reiniciar nada si no tienes acceso SSH. En un hosting compartido, hacerlo puede causar más problemas. Mejor contacta al soporte.

En Plesk (VPS o servidores dedicados)

  1. Accede a Plesk como administrador.
  2. Ve a "Herramientas y ajustes" > "Administración del servidor" > "Servicios".
  3. Busca MySQL o MariaDB en la lista.
  4. Verifica que el estado sea "corriendo" (running). Si está detenido, haz clic en el botón para iniciarlo.

En un VPS con acceso SSH (si sabes lo que haces)

Si tienes acceso root, puedes ejecutar estos comandos para verificar el estado:

sudo systemctl status mysql
# o si usas MariaDB:
sudo systemctl status mariadb

Si el servicio está inactivo, puedes iniciarlo con:

sudo systemctl start mysql
# o
sudo systemctl start mariadb

Paso 2: El error "Connection refused" y el puerto 3306

El error connection refused mysql significa que el servidor MySQL no está aceptando conexiones TCP en el puerto 3306. Esto puede deberse a varias razones:

El servicio no escucha en la dirección correcta

MySQL puede estar configurado para escuchar solo en localhost (127.0.0.1) o solo en una IP específica. Si tu aplicación intenta conectarse a una IP distinta, verás el error.

Solución desde cPanel:

  1. Ve a la sección "Remote MySQL" (MySQL Remoto).
  2. Añade la IP desde la que te conectas (normalmente tu IP pública o la IP del servidor de tu aplicación). En muchos casos, añadir % (comodín) permite cualquier IP, pero no lo recomiendo por seguridad.

Solución desde Plesk:

  1. Ve a "Bases de datos" > selecciona tu base de datos.
  2. Revisa la pestaña "Acceso remoto" o "Host remoto".
  3. Asegúrate de que el host desde donde te conectas esté permitido.

El puerto está bloqueado por un firewall

A veces, el firewall del servidor bloquea el puerto 3306. Esto es especialmente común en VPS o servidores en la nube.

[TIP] Si estás en un VPS, revisa las reglas del firewall (UFW, iptables, o el firewall del proveedor como AWS Security Groups). Asegúrate de que el puerto 3306 esté abierto para la IP desde la que te conectas.

El archivo de configuración tiene un error

En algunos casos, el archivo my.cnf o my.ini tiene una línea que impide que MySQL escuche correctamente. Si tienes acceso SSH, busca la línea bind-address. Si está configurada como 127.0.0.1, solo aceptará conexiones locales. Cámbiala a 0.0.0.0 si necesitas conexiones remotas.


Paso 3: El error "Access denied" y las credenciales

El error access denied mysql es más común de lo que parece. Aquí te dejo las causas más frecuentes y sus soluciones.

Contraseña incorrecta o mal copiada

Es la causa más básica. Al copiar la contraseña desde el panel, a veces se añade un espacio o se copia un carácter invisible.

Solución:

  1. Ve a cPanel > "MySQL Databases".
  2. Localiza tu base de datos y el usuario asociado.
  3. Haz clic en "Change Password" (Cambiar contraseña) y crea una nueva.
  4. Actualiza el archivo wp-config.php de WordPress con la nueva contraseña.

En Plesk:

  1. Ve a "Bases de datos" > selecciona tu base.
  2. Haz clic en "Cambiar contraseña" del usuario.
  3. Actualiza tu aplicación con la nueva contraseña.

El usuario no tiene permisos sobre la base de datos

A veces el usuario existe, pero no está vinculado a la base de datos. Esto ocurre cuando creas una base de datos y un usuario por separado y olvidas asignarlo.

En cPanel:

  1. En "MySQL Databases", busca la sección "Add User to Database" (Añadir usuario a la base de datos).
  2. Selecciona tu usuario y tu base de datos.
  3. Marca la casilla "ALL PRIVILEGES" (Todos los privilegios) y haz clic en "Make Changes".

En Plesk:

  1. Entra a la base de datos.
  2. En la pestaña "Usuarios", asegúrate de que el usuario esté listado.
  3. Si no está, añádelo y otórgale todos los privilegios.

[INFO] En WordPress, si cambias la contraseña en cPanel/Plesk, también debes actualizar el archivo wp-config.php en la raíz de tu sitio. Busca las líneas DB_USER y DB_PASSWORD.


Paso 4: Solución específica para WordPress

Si tu WordPress muestra el error de conexión a la base de datos, sigue estos pasos:

  1. Revisa el archivo wp-config.php: Conéctate por FTP o desde el administrador de archivos de cPanel. Abre el archivo y verifica que los datos de conexión (nombre de la base, usuario, contraseña y host) sean correctos.
  2. Comprueba el host de la base de datos: En la mayoría de hostings, el host es localhost. Pero en algunos (como Hostinger o ciertos VPS), el host puede ser 127.0.0.1 o un nombre como mysql.tudominio.com.
  3. Repara la base de datos: Desde cPanel, en "MySQL Databases", hay una opción llamada "Repair Database" (Reparar base de datos). Esto puede solucionar errores internos.
  4. Activa el modo de depuración: Si el error persiste, añade esta línea al wp-config.php:
define('WP_DEBUG', true);

Esto mostrará un mensaje más detallado del error, lo que te ayudará a identificar si es un problema de contraseña, de host o de permisos.


Paso 5: El caso especial de Syspanel (HestiaCP)

Si tu hosting utiliza Syspanel (anteriormente conocido como HestiaCP), el proceso es similar pero con algunas particularidades.

[INFO] Syspanel es un panel de control gratuito y ligero. El acceso a su panel se realiza a través del puerto 2106 (por ejemplo: https://tudominio.com:2106).

Para solucionar errores de MySQL en Syspanel:

  1. Accede al panel usando el puerto 2106.
  2. Ve a la sección "Bases de datos".
  3. Selecciona tu base de datos y revisa el usuario asociado.
  4. Si necesitas cambiar la contraseña, hazlo desde el panel y actualiza tu aplicación.

Si el error es connection refused mysql, revisa si el servicio MySQL está activo desde el panel o desde SSH:

sudo systemctl status mysql

En Syspanel, el servicio puede llamarse mysql o mariadb. Si está inactivo, reinícialo con:

sudo systemctl restart mysql

Paso 6: Verifica los logs de MySQL

Si has seguido todos los pasos anteriores y el error persiste, es hora de revisar los registros (logs) de MySQL. Estos archivos contienen información detallada sobre por qué se rechaza la conexión.

En cPanel/Plesk: No siempre tienes acceso a los logs directamente. Puedes pedirlos al soporte técnico.

En VPS con SSH:

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

Busca líneas que contengan Access denied o Connection refused. Te darán pistas como la IP desde la que se intenta conectar o el usuario que falla.


Paso 7: Solución avanzada para usuarios con acceso SSH

Si tienes acceso root al servidor, puedes intentar restablecer el acceso a MySQL de forma manual:

  1. Detén el servicio:
    sudo systemctl stop mysql
    
  2. Inicia MySQL en modo seguro (sin permisos):
    sudo mysqld_safe --skip-grant-tables &
    
  3. Conéctate sin contraseña:
    mysql -u root
    
  4. Cambia la contraseña del usuario root o del usuario afectado:
    FLUSH PRIVILEGES;
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'nueva_contraseña';
    EXIT;
    
  5. Reinicia MySQL normalmente:
    sudo systemctl restart mysql
    

[WARNING] Este método es sensible. Si no sabes lo que estás haciendo, puedes dejar el servidor en un estado peor. Úsalo solo si estás seguro y tienes una copia de seguridad.


Preguntas frecuentes (FAQ)

¿Puedo solucionar el error "Access denied" sin cambiar la contraseña?

Sí, si el problema es que el usuario no tiene permisos sobre la base de datos. En cPanel, ve a "MySQL Databases" y asegúrate de que el usuario esté asignado a la base de datos con todos los privilegios. Si el problema es la contraseña, no hay otra opción que cambiarla o restablecerla.

¿Por qué veo "Connection refused" si el servicio está activo?

Puede ser que MySQL esté escuchando solo en localhost y tu aplicación intente conectarse a una IP remota. También puede ser un problema de firewall. Revisa la configuración de bind-address y las reglas del puerto 3306.

¿Qué hago si no tengo acceso a cPanel ni a Plesk?

Si tu sitio está caído y no tienes acceso al panel, contacta a tu proveedor de hosting de inmediato. Ellos pueden reiniciar el servicio o restablecer credenciales desde su lado.

¿El error afecta a todas las bases de datos o solo a una?

Si el error es connection refused, afecta a todas las bases de datos del servidor. Si es access denied, probablemente solo afecte a un usuario o base de datos específica.

¿Cómo evito estos errores en el futuro?

  • Usa contraseñas seguras y guárdalas en un gestor de contraseñas.
  • No compartas credenciales de bases de datos en archivos públicos.
  • Realiza copias de seguridad periódicas de tus bases de datos.
  • Mantén WordPress y sus plugins actualizados.

Resumen rápido

ErrorCausa probableSolución
Connection refusedServicio MySQL caído o puerto bloqueadoReiniciar servicio, abrir puerto 3306
Access deniedCredenciales incorrectas o sin permisosCambiar contraseña, asignar usuario a la base
Ambos en WordPressConfiguración incorrecta en wp-config.phpVerificar datos de conexión y host

Conclusión

Los errores connection refused mysql y error access denied mysql son frustrantes, pero casi siempre tienen solución. La clave está en identificar correctamente cuál de los dos estás viendo y seguir los pasos adecuados. Recuerda que, si estás en un hosting compartido, el soporte técnico de tu proveedor es tu mejor aliado. No dudes en contactarlos si los pasos anteriores no resuelven el problema.

Espero que esta guía te haya sido útil. Si tienes alguna duda, déjala en los comentarios y con gusto te ayudaré a resolverla.

¿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