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

Cómo solucionar el error 'Access denied for user' en MySQL (cPanel/Plesk)

Actualizado el 1 de febrero de 2026

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

El error "Access denied for user" es uno de los mensajes más comunes (y frustrantes) que puedes encontrar al trabajar con bases de datos MySQL o MariaDB. Básicamente, MySQL te está diciendo que no te deja entrar porque las credenciales que has proporcionado no son válidas, o porque el usuario no tiene permisos suficientes para conectarse desde el lugar o con la base de datos que intentas usar.

Imagina que intentas entrar a tu casa con una llave equivocada. La puerta no se abre. Pues esto es exactamente lo mismo: MySQL es la puerta, y la llave es la combinación de usuario, contraseña, host y privilegios. Si falla cualquiera de esos cuatro elementos, recibirás el error.

Este problema es especialmente habitual en entornos de hosting con paneles como cPanel o Plesk, donde la gestión de bases de datos se hace a través de interfaces gráficas. Pero no te preocupes: en este artículo te voy a explicar paso a paso cómo solucionarlo, incluso si nunca has tocado un servidor en tu vida.


Causas más frecuentes del error "Access denied"

Antes de lanzarnos a las soluciones, es importante que identifiques cuál de estas causas es la que te está afectando. Así irás directo al grano.

  • Contraseña incorrecta: La más obvia. Has copiado mal la contraseña, tiene espacios extra, o la cambiaron y no te has enterado.
  • Usuario incorrecto: En cPanel y Plesk, los nombres de usuario suelen tener prefijos (por ejemplo, usuariocp_bd1). A veces olvidamos escribir el prefijo completo.
  • Host incorrecto: MySQL no solo valida usuario y contraseña, también desde dónde te conectas. Si usas localhost cuando deberías usar 127.0.0.1 o una IP remota, fallará.
  • Permisos insuficientes: El usuario existe y la contraseña es correcta, pero no tiene privilegios sobre la base de datos que intentas consultar.
  • Base de datos no vinculada al usuario: En paneles como cPanel, debes asignar explícitamente un usuario a una base de datos. Si no lo has hecho, el acceso se deniega.
  • Cache de conexiones: A veces, aplicaciones como WordPress guardan credenciales antiguas en memoria o en archivos de configuración.

Solución paso a paso para cPanel

cPanel es uno de los paneles más usados en hosting compartido. Sigue estos pasos en orden. No te saltes ninguno, porque la solución suele estar en el más tonto.

1. Verifica las credenciales en "MySQL Databases"

Entra en tu panel de cPanel y busca la sección "Databases" o "MySQL Databases". Aquí verás un listado de todas tus bases de datos y los usuarios asociados.

  • Anota el nombre exacto de la base de datos (normalmente es usuario_nombrebd).
  • Anota el nombre exacto del usuario (normalmente es usuario_nombreuser).
  • Asegúrate de que el usuario está asignado a la base de datos. Si no lo está, verás un mensaje como "No privileges". En ese caso, selecciona el usuario, la base de datos y haz clic en "Add" o "Assign". Marca "ALL PRIVILEGES" para evitar problemas.

2. Restablece la contraseña del usuario MySQL

Si las credenciales parecen correctas pero sigues teniendo problemas, genera una contraseña nueva:

  • En la misma sección de cPanel, busca el usuario MySQL en la lista.
  • Haz clic en "Change Password".
  • Usa una contraseña robusta. No uses caracteres extraños que puedan dar problemas al copiar (a veces $ o % se escapan mal en los archivos de configuración).
  • Importante: Anota la contraseña en un bloc de notas temporal. Luego tendrás que actualizarla en tu aplicación.

3. Comprueba el host correcto

En la mayoría de los casos, el host para la base de datos es localhost. Pero algunos servidores usan 127.0.0.1 o incluso un hostname específico como mysql.tudominio.com.

  • Revisa el correo de bienvenida de tu hosting o la documentación del proveedor.
  • Prueba a cambiar entre localhost y 127.0.0.1 en tu archivo de configuración (por ejemplo, wp-config.php en WordPress).

4. Actualiza el archivo de configuración de tu aplicación

Si usas WordPress, busca el archivo wp-config.php en la raíz de tu sitio. Deberías ver líneas como esta:

define('DB_NAME', 'usuario_nombrebd');
define('DB_USER', 'usuario_nombreuser');
define('DB_PASSWORD', 'tucontraseña');
define('DB_HOST', 'localhost');
  • Verifica que cada campo coincida exactamente con lo que viste en cPanel.
  • Si cambiaste la contraseña en el paso 2, actualízala aquí también.
  • Guarda el archivo y prueba de nuevo.

5. Usa phpMyAdmin para probar la conexión

Si sigues con dudas, entra en phpMyAdmin desde cPanel.

  • Verás que entras sin problemas (porque cPanel ya tiene una sesión activa).
  • Arriba a la derecha, haz clic en el nombre de usuario y luego en "Log out".
  • Ahora intenta entrar manualmente con el usuario y contraseña que tienes en tu archivo de configuración.
  • Si phpMyAdmin te muestra el mismo error, el problema está en las credenciales. Si entra, el problema está en cómo tu aplicación se conecta.

Solución paso a paso para Plesk

Plesk es otro panel muy común, sobre todo en servidores VPS y dedicados. El proceso es similar, pero con nombres y ubicaciones diferentes.

1. Accede a "Databases" en Plesk

  • Entra en tu panel de Plesk.
  • En el menú lateral, busca "Databases" (o "Bases de datos" en español).
  • Verás la lista de bases de datos. Haz clic en el nombre de la base de datos que te da problemas.

2. Revisa los usuarios y permisos

Dentro de la base de datos, verás una pestaña llamada "Users" o "Usuarios".

  • Comprueba que el usuario que usas en tu aplicación aparece en la lista.
  • Si no aparece, haz clic en "Add User" y crea uno nuevo, o asigna uno existente.
  • Asegúrate de que tiene todos los privilegios (SELECT, INSERT, UPDATE, DELETE, etc.). En Plesk puedes marcar "ALL PRIVILEGES" fácilmente.

3. Cambia la contraseña del usuario

  • En la misma pestaña de usuarios, haz clic en el icono de edición (normalmente un lápiz).
  • Cambia la contraseña y guarda.
  • Recuerda actualizar tu aplicación con la nueva contraseña.

4. Verifica el host

En Plesk, el host suele ser localhost para conexiones locales. Si tu aplicación está en el mismo servidor, usa localhost. Si te conectas desde fuera, necesitarás la IP del servidor y habilitar el acceso remoto (algo que normalmente está desactivado por seguridad).


Soluciones avanzadas (para cuando nada de lo anterior funciona)

Si ya has probado todo lo anterior y el error "Access denied for user" persiste, puede que necesites ir un paso más allá.

1. Usa la consola de MySQL (SSH)

Si tu hosting te da acceso SSH, puedes conectarte al servidor y probar la conexión directamente:

mysql -u usuario -p -h localhost -P 3306

Te pedirá la contraseña. Si entra, el problema es de tu aplicación. Si no entra, el problema es de MySQL.

2. Revisa los logs de MySQL

Los logs de error de MySQL suelen estar en /var/log/mysql/error.log o /var/log/mysql/mysql.log. Busca la línea exacta del error. A veces verás algo como:

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

Ese "using password: YES" te indica que MySQL recibió una contraseña, pero no era la correcta. Si dice "using password: NO", significa que no se envió contraseña.

3. Comprueba los privilegios con una consulta SQL

Si tienes acceso a la consola con otro usuario administrador (como root), puedes ver los privilegios del usuario problemático:

SHOW GRANTS FOR 'usuario'@'localhost';

Esto te dirá exactamente qué permisos tiene. Si no tiene privilegios sobre la base de datos, puedes otorgárselos:

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

Errores comunes en WordPress y otras aplicaciones

  • WordPress: El error "Error establishing a database connection" suele estar relacionado con este problema. Revisa wp-config.php y asegúrate de que no haya espacios en blanco alrededor de las constantes.
  • Joomla: El archivo configuration.php tiene las credenciales. Asegúrate de que las comillas estén bien cerradas.
  • PrestaShop: El archivo parameters.php en /app/config/ contiene los datos de conexión.

Prevención: cómo evitar este error en el futuro

  • Usa un gestor de contraseñas para guardar las credenciales de tus bases de datos.
  • No cambies las contraseñas desde phpMyAdmin directamente. Hazlo siempre desde cPanel o Plesk, para que el panel actualice todos sus registros internos.
  • Nombres claros: Evita usar caracteres especiales en nombres de usuarios o bases de datos.
  • Copia y pega siempre las credenciales desde el panel, nunca las escribas a mano.
  • Revisa los permisos cada vez que migres de hosting o cambies de servidor.

Preguntas frecuentes (FAQ)

¿Por qué me da error si la contraseña es correcta?

Puede ser que el usuario no tenga permisos sobre esa base de datos en concreto. En cPanel y Plesk, un usuario puede existir pero no estar vinculado a la base de datos. Revisa la asignación de permisos.

¿Qué significa "using password: NO" en el log?

Significa que MySQL no recibió ninguna contraseña. Esto suele pasar cuando el archivo de configuración de tu aplicación tiene la variable de contraseña vacía o mal escrita.

¿Puedo conectarme a MySQL desde fuera de mi hosting?

Depende del proveedor. Muchos bloquean las conexiones remotas por seguridad. Si necesitas hacerlo, tendrás que habilitar el acceso remoto en MySQL y abrir el puerto 3306 en el firewall. Hazlo bajo tu propia responsabilidad, ya que es un riesgo de seguridad.

¿Qué hago si olvidé la contraseña del usuario MySQL?

En cPanel: entra en "MySQL Databases" y usa "Change Password". En Plesk: entra en la base de datos, pestaña "Users", y cambia la contraseña.

¿Por qué me pide el prefijo del usuario?

En cPanel, los nombres de usuario y bases de datos tienen un prefijo obligatorio (tu nombre de usuario de cPanel). Si no lo incluyes, el sistema no encuentra al usuario y te da "Access denied".


Conclusión: paciencia y método

El error "Access denied for user" es molesto, pero casi siempre tiene una solución sencilla. Sigue el orden lógico: verifica credenciales, comprueba permisos, revisa el host y actualiza tu aplicación. En el 90% de los casos, el problema está en un simple error de copia o en una contraseña cambiada que no se ha actualizado en el archivo de configuración.

Si después de todo esto sigues atascado, no dudes en contactar con el soporte de tu hosting. Ellos tienen acceso directo al servidor y podrán decirte exactamente qué está fallando. Pero con esta guía, estoy seguro de que lo resolverás tú mismo.

[TIP]: Si usas Syspanel (antes conocido como HestiaCP) y tienes este error, recuerda que el acceso a su panel se realiza a través del puerto 2106. La gestión de bases de datos es similar a Plesk, pero la ubicación de los menús puede variar. Busca la sección "Databases" en el menú lateral y aplica los mismos pasos que te he explicado.

[WARNING]: Nunca compartas tus credenciales de MySQL en foros públicos o chats de soporte. Si necesitas ayuda, oculta siempre la contraseña y el nombre de usuario.

[INFO]: Este error también puede aparecer al hacer migraciones de hosting. Si acabas de mover tu web, revisa que las credenciales del nuevo servidor sean las que estás usando. Es muy común olvidar actualizar el archivo de configuración después de una migración.

Ahora ya tienes todo lo necesario para solucionar este error. Manos a la obra y no te desesperes: es cuestión de revisar con calma.

¿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