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

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

Actualizado el 3 de junio de 2026

¡Hola! Si estás leyendo esto, es muy probable que te hayas encontrado con el temido error "Access denied for user" al intentar conectar tu sitio web o aplicación a tu base de datos MySQL. No te preocupes, es uno de los problemas más comunes en el mundo del hosting y, en el 99% de los casos, tiene una solución sencilla que no requiere ser un genio de la informática.

En esta guía extensa y paso a paso, vamos a desglosar exactamente qué significa este error, por qué ocurre y, lo más importante, cómo solucionarlo en los tres paneles de control más populares: cPanel, Plesk y DirectAdmin. También hablaremos de "Syspanel" (antes conocido como HestiaCP) por si acaso.

Vamos a ello. Respira hondo, porque al final de este artículo serás capaz de diagnosticar y arreglar el error mysql acceso denegado tú mismo.


¿Qué significa exactamente "Access denied for user"?

Antes de lanzarnos a tocar botones, es crucial entender el mensaje. El error completo suele verse así:

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

O a veces la dirección IP del servidor, como 'usuario'@'192.168.1.10'.

Vamos a traducirlo al lenguaje humano: MySQL te está diciendo "Oye, te conozco, pero no me dejas entrar". Es decir, el servidor de bases de datos ha reconocido que existe un usuario con ese nombre, pero la contraseña que has proporcionado no coincide, o ese usuario no tiene permiso para conectarse desde el lugar (host) desde donde lo intentas.

Piénsalo como un portero de una discoteca muy exclusiva. El portero (MySQL) tiene una lista de invitados (usuarios). Si tu nombre está en la lista pero no llevas la pulsera correcta (contraseña), no te deja pasar. Y si tu nombre no está en la lista de ese local en concreto (host), tampoco.

Los motivos más comunes para este rechazo son:

  1. Contraseña incorrecta: La has copiado mal, tiene un espacio extra o la cambiaste recientemente.
  2. Usuario o base de datos mal escritos: Un error tipográfico es más común de lo que crees.
  3. Privilegios insuficientes: El usuario existe, pero no tiene permisos para acceder a la base de datos específica que intentas usar.
  4. Host incorrecto: Este es un punto clave. El usuario está configurado para conectarse solo desde localhost (el mismo servidor), pero tú intentas conectarte desde fuera (por ejemplo, desde tu ordenador personal o desde otro servidor). Aquí es donde entra el famoso host mysql.
  5. Contraseña con caracteres especiales: Si tu contraseña tiene símbolos como $, %, & o #, es posible que el sistema de configuración la esté interpretando mal al guardarla o leerla.

Solución paso a paso en cPanel

cPanel es el panel más común en el hosting compartido. Vamos a ver cómo diagnosticar y arreglar el problema.

### Paso 1: Accede a cPanel y busca "Bases de Datos MySQL"

Normalmente, el acceso es tudominio.com/cpanel o tudominio.com:2083. Una vez dentro, busca la sección "Bases de Datos" y haz clic en "Bases de Datos MySQL®". Aquí es donde se gestiona todo.

### Paso 2: Verifica el nombre de la base de datos y del usuario

Esta es la parte más importante. En cPanel, los nombres de las bases de datos y los usuarios tienen un prefijo obligatorio que suele ser el nombre de tu cuenta de hosting.

  • Si tu cuenta se llama miduenno, tu base de datos se llamará miduenno_mibasededatos y tu usuario miduenno_miusuario.

Mucha gente comete el error de usar solo mibasededatos y miusuario en su script de instalación (WordPress, Joomla, etc.), olvidando el prefijo. Asegúrate de que en tu archivo de configuración (como wp-config.php en WordPress) estás usando el nombre completo con el prefijo.

### Paso 3: Comprueba la contraseña

En la misma pantalla de "Bases de Datos MySQL", verás una lista de tus usuarios. Haz clic en "Editar" o en el icono de cambiar contraseña (normalmente un lápiz o un candado). Crea una contraseña nueva y segura. Te recomiendo usar el generador de contraseñas que incluye cPanel.

[WARNING] Al cambiar la contraseña, deberás actualizarla también en el archivo de configuración de tu aplicación (wp-config.php, .env, etc.). Si no lo haces, seguirás viendo el error.

### Paso 4: Añadir el usuario a la base de datos y asignar privilegios

Este es el paso que más se olvida. Un usuario puede existir, pero no estar "vinculado" a la base de datos que quieres usar.

  1. Baja en la página de "Bases de datos MySQL" hasta la sección "Añadir usuario a la base de datos".
  2. Selecciona tu usuario y tu base de datos en los menús desplegables.
  3. Haz clic en "Añadir".
  4. Se abrirá una nueva pantalla para asignar privilegios mysql. Para la mayoría de las aplicaciones, lo más fácil y seguro es marcar la casilla "TODOS LOS PRIVILEGIOS" y hacer clic en "Realizar cambios".

### Paso 5: El problema del Host Remoto (Host MySQL)

Si estás intentando conectar desde fuera de tu servidor (por ejemplo, una aplicación de escritorio como MySQL Workbench), cPanel bloqueará la conexión por defecto a menos que autorices tu IP.

  1. En la misma sección de "Bases de Datos MySQL", busca la opción "Acceso remoto a MySQL" o "Host remoto".
  2. Añade tu dirección IP pública en el campo correspondiente y haz clic en "Añadir host".
  3. Si no sabes tu IP, puedes buscarla en Google escribiendo "cuál es mi ip".

[INFO] Si tu IP es dinámica (cambia a menudo), esta solución puede ser un dolor de cabeza. En ese caso, considera usar un túnel SSH o una VPN.


Solución paso a paso en Plesk

Plesk tiene una interfaz diferente, pero la lógica es la misma. Normalmente se accede en tudominio.com:8443.

### Paso 1: Localiza la sección de Bases de Datos

En el panel principal, busca la pestaña "Sitios web y dominios". Dentro de tu dominio, verás un icono o enlace llamado "Bases de datos". Haz clic en él.

### Paso 2: Revisa los detalles de la base de datos

Verás una lista de las bases de datos que tienes. Haz clic en el nombre de la base de datos que te da problemas. Aquí podrás ver el nombre del usuario asociado.

En Plesk, el nombre del usuario suele ser igual al de la base de datos. Por ejemplo, si la base de datos se llama mibasededatos, el usuario será mibasededatos. No hay prefijos tan raros como en cPanel, pero es fácil confundirse.

### Paso 3: Cambiar la contraseña del usuario

Dentro de la página de la base de datos, busca la sección para editar el usuario. Haz clic en el nombre del usuario. Verás la opción de "Cambiar contraseña". Establece una nueva y guárdala.

### Paso 4: Verificar los privilegios

En la misma pantalla de edición de usuario, asegúrate de que la casilla "Todos los privilegios" esté marcada. Si quieres ser más restrictivo, puedes elegir solo los necesarios (SELECT, INSERT, UPDATE, DELETE...), pero para un blog o tienda, "Todos" es lo más sencillo.

### Paso 5: Configurar el acceso remoto (si es necesario)

Plesk es un poco más restrictivo con esto. Para permitir conexiones externas:

  1. Ve a "Herramientas y ajustes" en el panel principal.
  2. Busca la sección "Ajustes de servidor" y dentro, la pestaña "MySQL".
  3. Aquí podrás configurar el host mysql. Verás una opción para "Habilitar acceso remoto". Asegúrate de que esté marcada.

[TIP] En Plesk, a menudo es más fácil crear un usuario nuevo específicamente para el acceso remoto y asignarle solo los privilegios necesarios, en lugar de dar acceso remoto a todos los usuarios.


Solución paso a paso en DirectAdmin

DirectAdmin es menos común pero muy potente. El acceso suele ser tudominio.com:2222.

### Paso 1: Navega al menú de MySQL

En el panel principal, busca el icono "MySQL Management" o "Administración de MySQL" bajo la sección de "Cuenta".

### Paso 2: Gestiona tus bases de datos y usuarios

DirectAdmin muestra dos listas: una para bases de datos y otra para usuarios. Es muy visual.

  1. Para cambiar la contraseña: En la lista de usuarios, haz clic en el icono de "Cambiar contraseña" (normalmente un candado) junto al usuario que te da problemas.
  2. Para asignar permisos: En la lista de bases de datos, haz clic en el icono de "Editar" o "Permisos" (normalmente un engranaje o un lápiz). Se abrirá una pantalla donde puedes marcar y desmarcar los privilegios mysql para cada usuario en esa base de datos. Asegúrate de que tu usuario tiene los permisos necesarios (o todos).

### Paso 3: El truco del host en DirectAdmin

DirectAdmin tiene una peculiaridad. Para que un usuario pueda conectarse desde un host remoto, debes crear un "Host" en la configuración de ese usuario.

  1. En la lista de usuarios, haz clic en el icono de "Editar" (el lápiz).
  2. Busca la sección "Hosts".
  3. Añade la IP desde la que te vas a conectar (o % para permitir cualquier host, aunque esto es menos seguro).
  4. Guarda los cambios.

[WARNING] Usar % como host permite que cualquiera con la contraseña acceda desde cualquier lugar. Úsalo solo en entornos de desarrollo o si sabes muy bien lo que haces.


Solución para "Syspanel" (antes HestiaCP)

Aunque no lo preguntaste directamente, es muy probable que lo encuentres. Si tu hosting usa Syspanel (el antiguo HestiaCP), el acceso se realiza por el puerto 2106 (es decir, tudominio.com:2106).

El proceso es muy similar a DirectAdmin.

  1. Ve a la sección "Base de Datos" o "Bases de Datos" en el menú lateral.
  2. Verás una lista de bases de datos. Haz clic en el icono de "Editar" (el lápiz) de la base de datos en cuestión.
  3. En la ventana emergente, podrás ver el usuario asociado y cambiar su contraseña.
  4. Para los privilegios, normalmente Syspanel asigna todos por defecto. Si no es así, busca la opción de "Privilegios" o "Permisos" dentro de la edición y marca todos.
  5. Para el acceso remoto, Syspanel es un poco más complejo. Deberás editar el archivo de configuración de MySQL o usar la línea de comandos, lo cual ya es más avanzado.

Solución general: El archivo de configuración de tu aplicación

Independientemente del panel, el error suele estar en cómo tu aplicación se conecta. Revisa estos puntos:

  • WordPress: El archivo wp-config.php en la raíz de tu sitio. Busca las líneas DB_NAME, DB_USER, DB_PASSWORD y DB_HOST.
  • Otros CMS (Joomla, Drupal, etc.): Busca archivos como configuration.php o .env en la raíz.

Asegúrate de que:

  1. Los nombres de usuario y base de datos estén completos (con prefijos si es cPanel).
  2. La contraseña esté entre comillas simples o dobles y no tenga espacios.
  3. El DB_HOST sea localhost a menos que sepas que tu hosting usa un servidor de bases de datos externo (te lo dirán en el correo de bienvenida).

Preguntas Frecuentes (FAQ)

¿Por qué me sale "Access denied" si estoy seguro de que la contraseña es correcta?

Es posible que el usuario no tenga permisos sobre la base de datos. Vuelve a seguir los pasos para "Añadir usuario a la base de datos" en tu panel. También verifica que no hayas copiado la contraseña con un espacio invisible al final.

¿Qué significa el "host" en MySQL?

El host es desde dónde se permite la conexión. localhost significa solo desde el mismo servidor. Si tu aplicación está en el mismo hosting, usa localhost. Si usas una aplicación externa, necesitas configurar tu IP en el panel.

¿Es seguro cambiar la contraseña de mi base de datos?

Sí, es muy seguro y recomendable si sospechas que ha sido comprometida. Solo recuerda actualizar el archivo de configuración de tu aplicación inmediatamente después.

¿Qué hago si nada de esto funciona?

Verifica que el servidor de bases de datos esté corriendo. A veces, los servidores se saturan o se caen. Contacta con tu proveedor de hosting y diles el error exacto. Ellos tienen acceso a los logs del servidor y podrán ver el motivo exacto del rechazo.

¿Puedo usar el mismo usuario para varias bases de datos?

Sí, puedes. Solo tienes que añadir el usuario a cada base de datos y asignarle los privilegios en cada una. Es una buena práctica para simplificar la gestión.


Conclusión: Resumen de la solución

El error access denied for user mysql es frustrante, pero casi siempre se reduce a tres cosas: contraseña incorrecta, usuario no vinculado a la base de datos, o un problema con el host. Hemos visto cómo solucionarlo en los paneles más populares.

Regla de oro: Revisa primero los nombres (con prefijos), luego la contraseña y, por último, los privilegios y el host. En ese orden. Si todo parece correcto, cambia la contraseña por una nueva para descartar errores de copiado.

Con esta guía, ya tienes las herramientas para diagnosticar y resolver el problema tú mismo. Si te ha sido útil, compártelo con alguien que esté luchando contra el mismo error. ¡Buena suerte con tus bases 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