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

Cómo solucionar 'Access denied for user' en MySQL (cPanel, Plesk, DirectAdmin)

Actualizado el 14 de enero de 2026

¿Qué significa el error "Access denied for user" en MySQL?

Si estás leyendo esto, probablemente te has encontrado con un mensaje similar a este:

Access denied for user 'usuario_bd'@'localhost' (using password: YES)

O alguna variante como:

ERROR 1045 (28000): Access denied for user 'usuario'@'host' (using password: YES)

Primero, respira. Este es uno de los errores más comunes en el mundo del hosting y bases de datos. No significa que hayas perdido tus datos ni que tu sitio web esté en peligro. Simplemente significa que MySQL está rechazando la conexión porque los datos de acceso no coinciden con lo que espera.

El error access denied for user mysql aparece cuando intentas conectarte a una base de datos y el sistema no puede validar tu identidad. Esto puede deberse a múltiples causas, desde una contraseña mal escrita hasta permisos incorrectos asignados al usuario.

En este artículo, vamos a desglosar paso a paso cómo solucionar el error acceso base de datos mysql en los tres paneles de control más utilizados en hosting: cPanel, Plesk y DirectAdmin. También veremos trucos avanzados para casos más complejos.


Antes de empezar: identifica el origen del problema

Es fundamental entender que el error puede venir de tres frentes distintos:

  1. Credenciales incorrectas (usuario o contraseña mal escritos).
  2. Permisos insuficientes (el usuario no tiene acceso a esa base de datos concreta).
  3. Problemas de host remoto (el servidor desde el que te conectas no está autorizado).

Vamos a analizar cada uno de ellos y cómo solucionarlos en los distintos paneles de control.


## Solucionar "Access denied" en cPanel

cPanel es probablemente el panel de control más popular en el hosting compartido. Si tu proveedor usa cPanel, sigue estos pasos.

### 1. Verifica las credenciales en cPanel

Lo primero es asegurarte de que estás usando los datos correctos. Para ello:

  1. Inicia sesión en tu cPanel (normalmente en tudominio.com/cpanel).
  2. Busca la sección Bases de Datos y haz clic en Base de Datos MySQL.
  3. Verás una lista con todas tus bases de datos y los usuarios asociados a ellas.
  4. Anota el nombre exacto de la base de datos y del usuario. En cPanel, suelen tener un prefijo con tu nombre de cuenta (por ejemplo, usuariocpanel_basedatos).

[TIP] Muchas veces el error ocurre porque olvidamos que cPanel añade un prefijo al nombre. Si tu usuario es admin, en cPanel será tuusuario_admin. Escribe el nombre completo.

### 2. Comprueba los permisos del usuario MySQL

Un error muy común es que el usuario exista pero no tenga permisos sobre la base de datos. Para solucionarlo:

  1. En la misma sección Base de Datos MySQL, desplázate hasta Usuarios en la base de datos.
  2. Verás una tabla con los usuarios y las bases de datos a las que tienen acceso.
  3. Si tu usuario no aparece asociado a tu base de datos, selecciona el usuario y la base de datos en los menús desplegables y haz clic en Añadir.
  4. A continuación, marca TODOS LOS PRIVILEGIOS (o los que necesites) y haz clic en Hacer cambios.

[WARNING] Si cambias los privilegios de un usuario que ya está en producción, es posible que las conexiones activas se caigan momentáneamente. Hazlo en horas de bajo tráfico si es posible.

### 3. Cambiar la contraseña del usuario MySQL

Si sospechas que la contraseña es incorrecta, lo más seguro es cambiarla:

  1. En Base de Datos MySQL, busca la sección Usuarios MySQL.
  2. Localiza tu usuario y haz clic en Cambiar contraseña.
  3. Introduce una contraseña nueva y segura. Anótala en un lugar seguro.
  4. Actualiza los datos en tu archivo de configuración (por ejemplo, wp-config.php en WordPress o .env en Laravel).

[INFO] Después de cambiar la contraseña, espera 1-2 minutos antes de probar la conexión. MySQL a veces tarda un poco en refrescar los datos.

### 4. Probar la conexión desde la línea de comandos

Si tienes acceso SSH, puedes probar la conexión directamente:

mysql -u usuario_bd -p -h localhost nombre_base_datos

Te pedirá la contraseña. Si funciona, el problema está en tu aplicación o en los datos que tienes configurados. Si no funciona, repite los pasos anteriores.


## Solucionar "Access denied" en Plesk

Plesk es otro panel muy extendido, especialmente en servidores VPS y dedicados. El proceso es similar pero con algunas particularidades.

### 1. Accede a la gestión de bases de datos

  1. Inicia sesión en tu Plesk.
  2. En el menú lateral izquierdo, busca Bases de datos (o Sitios web y dominios y luego el icono de Bases de datos).
  3. Haz clic en el nombre de la base de datos que te da problemas.

### 2. Revisa los usuarios y permisos

En Plesk, los permisos se gestionan de forma un poco diferente:

  1. Dentro de la base de datos, verás una pestaña llamada Usuarios.
  2. Asegúrate de que tu usuario aparece en la lista.
  3. Si no está, haz clic en Añadir usuario y crea uno nuevo o añade uno existente.
  4. Marca la casilla Todos los privilegios o selecciona los que necesites.

[TIP] En Plesk, los nombres de usuario a veces no llevan prefijo, pero es recomendable usar nombres descriptivos que identifiquen claramente la base de datos a la que pertenecen.

### 3. Cambiar la contraseña del usuario

Para cambiar la contraseña:

  1. Ve a la pestaña Usuarios de la base de datos.
  2. Haz clic en el icono de lápiz (editar) junto al usuario.
  3. Introduce la nueva contraseña y guarda los cambios.

### 4. Comprueba la configuración de host remoto

En Plesk, a veces el problema viene porque el usuario solo tiene permitido conectarse desde localhost. Si tu aplicación se conecta desde otro servidor:

  1. Edita el usuario.
  2. En el campo Host, puedes especificar desde qué IP o dominio se permite la conexión.
  3. Si necesitas acceso remoto, escribe % (permite cualquier host) o la IP específica de tu servidor de aplicación.

[WARNING] Permitir acceso desde % es un riesgo de seguridad. Úsalo solo si es estrictamente necesario y siempre con contraseñas muy seguras.


## Solucionar "Access denied" en DirectAdmin

DirectAdmin es menos común pero igual de potente. Su interfaz es más sencilla, pero el proceso es igual de directo.

### 1. Accede a la gestión de MySQL

  1. Inicia sesión en DirectAdmin.
  2. Busca la sección MySQL Management (o Base de datos MySQL).
  3. Verás listadas todas tus bases de datos y usuarios.

### 2. Verifica los permisos del usuario

En DirectAdmin, los permisos se asignan al crear el usuario, pero puedes modificarlos:

  1. Haz clic en el icono de lápiz junto al usuario que te da problemas.
  2. Verás una lista de bases de datos a las que tiene acceso.
  3. Marca la base de datos que necesitas y selecciona los privilegios.
  4. Guarda los cambios.

### 3. Cambiar la contraseña

Para cambiar la contraseña:

  1. Junto al usuario, haz clic en Cambiar contraseña.
  2. Introduce una contraseña nueva y segura.
  3. Actualiza tu aplicación con la nueva contraseña.

### 4. Conexión remota en DirectAdmin

DirectAdmin también permite configurar los hosts desde los que se puede conectar el usuario:

  1. Al editar el usuario, busca el campo Hosts.
  2. Añade localhost y, si necesitas conexión remota, la IP o % para todos.

[INFO] En DirectAdmin, si tienes varios sitios en el mismo servidor, es habitual que el error aparezca al usar localhost en lugar de 127.0.0.1. Prueba ambas opciones.


## Solución avanzada: usar la línea de comandos de MySQL

Si los pasos anteriores no funcionan, es hora de ponerse técnico. Con acceso SSH al servidor, puedes ejecutar comandos MySQL directamente.

### 1. Accede a MySQL como root

mysql -u root -p

Si no conoces la contraseña de root, a menudo puedes acceder con sudo mysql en sistemas Ubuntu.

### 2. Crea un usuario nuevo o modifica los permisos

Para ver los usuarios existentes:

SELECT user, host FROM mysql.user;

Para otorgar todos los permisos a un usuario sobre una base de datos:

GRANT ALL PRIVILEGES ON nombre_base_datos.* TO 'usuario'@'localhost';
FLUSH PRIVILEGES;

Si el usuario no existe, créalo:

CREATE USER 'usuario'@'localhost' IDENTIFIED BY 'contraseña_segura';
GRANT ALL PRIVILEGES ON nombre_base_datos.* TO 'usuario'@'localhost';
FLUSH PRIVILEGES;

[TIP] Si tu aplicación se conecta desde otro servidor, cambia 'localhost' por la IP del servidor o '%' para todos.

### 3. Verifica los permisos actuales

SHOW GRANTS FOR 'usuario'@'localhost';

Esto te mostrará exactamente qué permisos tiene ese usuario.


## Errores comunes y sus soluciones rápidas

Aquí tienes una lista de situaciones típicas que generan el error acceso base de datos mysql y cómo resolverlas:

ProblemaSíntomaSolución
Contraseña mal escritaError "using password: YES"Cambia la contraseña en el panel de control y actualiza tu app.
Usuario sin permisosError "using password: NO"Asigna los privilegios en el panel.
Host incorrectoError "User 'x'@'IP' has no access"Añade el host remoto o usa %.
Base de datos no existeError "Unknown database"Crea la base de datos o corrige el nombre.
Cache de la aplicaciónError intermitenteReinicia el servicio de la aplicación o el servidor web.

## Preguntas frecuentes (FAQ)

### ¿Cómo sé si el error es de MySQL o de mi aplicación?

Prueba a conectarte directamente con la herramienta de gestión de bases de datos de tu panel. Si funciona ahí, el problema está en la configuración de tu aplicación. Si no funciona, es un problema de MySQL.

### ¿Puedo solucionar este error sin acceso al panel de control?

Sí, si tienes acceso SSH y credenciales de root de MySQL. Pero si no, deberás contactar con tu proveedor de hosting.

### ¿Qué hago si olvidé la contraseña de root de MySQL?

En la mayoría de los paneles puedes cambiarla desde la interfaz. En cPanel, busca "MySQL Root Password" en la sección de bases de datos. En Plesk y DirectAdmin, es similar.

### ¿Es seguro usar % como host para mi usuario?

No es recomendable a menos que sea absolutamente necesario. Significa que cualquier servidor puede intentar conectarse con ese usuario. Usa IPs específicas siempre que sea posible.

### ¿Por qué me funciona con 127.0.0.1 pero no con localhost?

En algunos sistemas, MySQL trata localhost y 127.0.0.1 de forma diferente. Si tu usuario está configurado para localhost, prueba a conectarte con 127.0.0.1 o viceversa.


## Conclusión

El error access denied for user mysql es frustrante, pero casi siempre tiene una solución sencilla. La clave está en verificar metódicamente:

  1. Credenciales (usuario y contraseña).
  2. Permisos (que el usuario tenga acceso a la base de datos).
  3. Host (desde dónde se conecta).

Si sigues los pasos que hemos detallado para cPanel, Plesk o DirectAdmin, resolverás el problema en la mayoría de los casos. Y si no, siempre puedes recurrir a la línea de comandos para un control total.

[TIP] Guarda siempre las contraseñas en un gestor de contraseñas. Y cuando cambies algo en MySQL, actualiza todos los archivos de configuración de tus aplicaciones (.env, wp-config.php, etc.) antes de probar.

Esperamos que este artículo te haya sido de ayuda. Si tienes más dudas, no dudes en consultar la documentación de tu proveedor o contactar con su soporte técnico. ¡Buena suerte con tu base de datos!

¿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