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

Cómo solucionar 'Access denied for user' al conectar a MySQL (WordPress y PrestaShop)

Actualizado el 17 de septiembre de 2025

Introducción: El temido error de acceso a MySQL

Si estás leyendo esto, seguramente te has encontrado con un mensaje similar a "Access denied for user 'usuario'@'localhost' (using password: YES)" al intentar acceder a tu base de datos, ya sea desde WordPress, PrestaShop o una herramienta como phpMyAdmin. No te preocupes, es uno de los errores más comunes en el mundo del hosting y, en la mayoría de los casos, tiene una solución sencilla.

Este error de conexión MySQL significa literalmente que el servidor de bases de datos ha rechazado tus credenciales. No importa si tienes una tienda online en PrestaShop o un blog en WordPress, la base de datos es el corazón de tu sitio web, y sin ella, todo se detiene. Vamos a desglosar, paso a paso, cómo identificar la causa y solucionar este problema, incluso si no eres un experto técnico.

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

Antes de lanzarnos a solucionar, es vital entender qué está pasando. El mensaje completo suele ser así:

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

Vamos a traducirlo: El sistema te está diciendo que el usuario mi_usuario intentó conectarse desde localhost (tu propio servidor) y que usó una contraseña (using password: YES). Pero el servidor MySQL ha dicho "no". Las razones más comunes son:

  1. Contraseña incorrecta: Es la causa más habitual. Puede que hayas cambiado la contraseña recientemente o que haya un error tipográfico.
  2. Nombre de usuario incorrecto: El usuario no existe o está mal escrito en el archivo de configuración.
  3. Permisos insuficientes: El usuario existe, pero no tiene permisos para acceder a la base de datos específica que intentas usar.
  4. Host incorrecto: El usuario está configurado para conectarse solo desde un host específico (ej. localhost) y estás intentando conectarte desde otro (ej. una IP remota).

Primeros pasos: Diagnóstico rápido

No entres en pánico. Respira hondo y sigue estos pasos para identificar el origen del problema.

1. Verifica tus credenciales en el archivo de configuración

Tanto WordPress como PrestaShop guardan los datos de conexión a la base de datos en un archivo de texto. Si has cambiado la contraseña de la base de datos o has movido el sitio, es muy probable que el problema esté aquí.

  • Para WordPress: El archivo se llama wp-config.php y está en la raíz de tu instalación. Búscalo con el administrador de archivos de tu hosting o vía FTP.
  • Para PrestaShop: El archivo se llama parameters.php y se encuentra en la ruta config/ dentro de la carpeta de tu tienda.

Abre el archivo y busca líneas como estas:

// Para WordPress
define('DB_NAME', 'nombre_base_datos');
define('DB_USER', 'mi_usuario');
define('DB_PASSWORD', 'mi_contraseña');
define('DB_HOST', 'localhost');
// Para PrestaShop
'database_host' => 'localhost',
'database_name' => 'nombre_base_datos',
'database_user' => 'mi_usuario',
'database_password' => 'mi_contraseña',

Compara estos datos con los que tienes anotados. Asegúrate de que el nombre de la base de datos, el usuario y la contraseña sean exactamente los correctos. Un simple espacio o un carácter mal copiado puede causar el error.

[TIP] Si no recuerdas tu contraseña, puedes cambiar la contraseña de la base de datos desde el panel de control de tu hosting (cPanel, Plesk, Syspanel, etc.) y luego actualizar este archivo con la nueva contraseña.

2. Comprueba el estado del servidor de bases de datos

A veces el problema no son tus credenciales, sino que el servidor MySQL está caído o reiniciándose. Si tienes acceso a un panel como phpMyAdmin, intenta acceder con las mismas credenciales. Si no puedes, el problema es del servidor, no de tu configuración.

[WARNING] Si el error aparece justo después de una actualización de tu sistema de gestión (WordPress o PrestaShop), es posible que el servidor esté aplicando cambios. Espera unos minutos y vuelve a intentarlo.

Solución paso a paso: Cómo arreglar el "Access denied" en WordPress y PrestaShop

Vamos a las soluciones prácticas. Te las presento en orden, de la más simple a la más compleja.

Solución 1: Restablecer la contraseña desde el panel de control (La más fácil)

Esta es la opción más rápida y efectiva si el problema es la contraseña.

  1. Accede a tu panel de control de hosting: Esto puede ser cPanel, Plesk, o Syspanel (en el caso de que tu hosting use este panel; recuerda que el acceso a Syspanel es a través del puerto 2106).
  2. Busca la sección de "Bases de Datos MySQL": El nombre puede variar, pero suele ser "MySQL Databases", "Bases de datos", o similar.
  3. Encuentra tu base de datos y el usuario: Verás una lista de tus bases de datos y los usuarios asociados.
  4. Cambia la contraseña del usuario: Busca la opción "Cambiar contraseña" o "Change Password" junto al usuario de la base de datos. El sistema te pedirá que introduzcas la nueva contraseña dos veces.
  5. Actualiza el archivo de configuración: Ahora, ve al archivo wp-config.php o parameters.php y reemplaza la contraseña antigua con la nueva que acabas de crear.
  6. Guarda los cambios y prueba tu sitio web.

[INFO] En la mayoría de los paneles, la contraseña debe tener una combinación de letras mayúsculas, minúsculas y números. Asegúrate de que la nueva contraseña no contenga caracteres especiales que puedan dar problemas al guardarla en el archivo de configuración.

Solución 2: Verificar y corregir los permisos del usuario

Si la contraseña es correcta pero el error persiste, el usuario podría no tener los permisos necesarios sobre la base de datos. Esto es común si has importado una base de datos manualmente o si has creado un usuario nuevo.

  1. Accede a phpMyAdmin: Desde tu panel de control, busca el icono de phpMyAdmin. Si no puedes acceder, es que el problema es más serio y deberías contactar con tu proveedor de hosting.
  2. Selecciona tu base de datos: En el panel izquierdo, haz clic en el nombre de la base de datos que estás intentando usar.
  3. Ve a la pestaña "Privilegios": En la parte superior de la pantalla, verás una pestaña que dice "Privilegios". Haz clic en ella.
  4. Edita tu usuario: Busca tu usuario en la lista y haz clic en el icono de "Editar privilegios" (normalmente un lápiz).
  5. Marca todos los privilegios: En la sección de "Privilegios de base de datos", marca la casilla "Seleccionar todo" o "Check All" para darle todos los permisos al usuario.
  6. Guarda los cambios: Haz clic en "Continuar" o "Go" en la parte inferior.

Después de esto, el usuario tendrá acceso total a la base de datos. Vuelve a probar tu sitio web.

Solución 3: Corregir el host del usuario

Este es un error más técnico, pero importante. El usuario de la base de datos está configurado para conectarse desde un host específico. Si tu archivo de configuración dice DB_HOST como localhost, pero el usuario está creado para conectarse solo desde % (cualquier host) o viceversa, verás el error.

  1. Accede a phpMyAdmin como lo hiciste en el paso anterior.
  2. Ve a la pestaña "Cuentas de usuario": En la parte superior, busca una pestaña que diga "Cuentas de usuario" o "User accounts".
  3. Busca tu usuario: En la lista, verás el nombre de usuario y el host. Por ejemplo, mi_usuario con host localhost.
  4. Edita el host: Haz clic en "Editar privilegios" para tu usuario. En la página de edición, busca la opción "Host" o "Host name". Cámbialo a localhost si tu sitio está en el mismo servidor, o a % si te conectas desde fuera.
  5. Guarda los cambios.

[WARNING] Si cambias el host a %, estás permitiendo conexiones desde cualquier lugar. Esto es menos seguro. Es mejor usar localhost si tu sitio web y la base de datos están en el mismo servidor, que es lo habitual en WordPress y PrestaShop.

Solución 4: Reparar la tabla de usuarios de MySQL (Avanzado)

En casos muy raros, la tabla interna de usuarios de MySQL se corrompe y causa errores de acceso. Esta solución es más técnica y requiere acceso a la línea de comandos.

  1. Accede a tu servidor por SSH (si tu hosting lo permite).
  2. Conecta a MySQL como root (o con un usuario con privilegios administrativos):
    mysql -u root -p
    
  3. Ejecuta el siguiente comando para reparar la tabla de usuarios:
    REPAIR TABLE mysql.user;
    
  4. Sal de MySQL con EXIT;.

Si no te sientes cómodo con la línea de comandos, esta es una tarea para tu proveedor de hosting.

Errores comunes y su relación con el "Access denied"

A veces, el error de conexión MySQL viene acompañado de otros problemas. Vamos a ver algunos casos específicos:

WordPress: "Error establishing a database connection"

Este es el mensaje más común en WordPress. Es la traducción del error que estamos tratando. Las soluciones son las mismas: revisar wp-config.php, verificar permisos y contraseña.

PrestaShop: "Cannot connect to the database"

PrestaShop muestra este mensaje en su instalación o al intentar acceder al panel de administración. La solución es idéntica: revisar el archivo parameters.php y las credenciales en tu panel de hosting.

El error aparece después de migrar el sitio

Si has movido tu sitio de un hosting a otro, es muy probable que las credenciales hayan cambiado. Asegúrate de actualizar los archivos de configuración con los datos del nuevo hosting. También es común que el DB_HOST cambie de localhost a un nombre de servidor específico (ej. mysql.midominio.com). Revisa la información de tu nuevo proveedor.

Preguntas Frecuentes (FAQ)

Para cerrar, respondo a las preguntas más frecuentes que recibimos en soporte sobre este tema.

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

Puede que la contraseña sea correcta, pero el usuario no tenga permisos sobre la base de datos. Revisa la Solución 2 para asegurarte de que los privilegios están bien asignados.

¿Qué pasa si he olvidado la contraseña de MySQL?

No es un problema grave. Desde el panel de control de tu hosting (cPanel, Plesk, Syspanel en el puerto 2106), puedes cambiar la contraseña del usuario de la base de datos. Después, solo tienes que actualizar el archivo de configuración de tu CMS.

¿Puedo usar el mismo usuario para dos bases de datos diferentes?

Sí, es posible, pero el usuario debe tener permisos sobre ambas bases de datos. De lo contrario, solo podrá acceder a una de ellas. Es más seguro y limpio tener un usuario por base de datos.

El error persiste después de intentar todo. ¿Qué hago?

Si has seguido todos los pasos y el error continúa, el problema puede ser más profundo, como un fallo en el servidor MySQL o un problema de configuración a nivel de servidor. En este caso, lo mejor es contactar con el soporte técnico de tu proveedor de hosting. Ellos tendrán las herramientas y el acceso necesarios para diagnosticar el problema.

Conclusión: No temas al error, es parte del aprendizaje

El error "Access denied for user" es un clásico en la gestión de sitios web con WordPress y PrestaShop. Aunque puede ser frustrante, es uno de los problemas más fáciles de resolver si sigues una metodología lógica. Recuerda siempre empezar por lo más simple: verificar las credenciales en el archivo de configuración y la contraseña en tu panel de control.

Espero que esta guía te haya sido de gran ayuda. Con un poco de paciencia y estos pasos, tu sitio web volverá a estar en línea en pocos minutos. Si te ha quedado alguna duda, déjala en los comentarios y estaré encantado de ayudarte.

¿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