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

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

Actualizado el 11 de diciembre de 2025

¿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 en tu panel de administración de WordPress o PrestaShop:

Error establishing a database connection o más concretamente: Access denied for user 'usuario'@'localhost' (using password: YES)

No te preocupes. Este es uno de los errores más comunes en el mundo del hosting y, en la gran mayoría de los casos, tiene una solución sencilla. Vamos a desglosarlo paso a paso, como si lo hiciéramos juntos desde cero.

Este error significa que tu aplicación (WordPress o PrestaShop) está intentando conectarse a la base de datos MySQL con un usuario y contraseña, pero MySQL está rechazando esa combinación. Es como si intentaras entrar a tu casa con una llave equivocada. La cerradura (MySQL) te dice: "No te conozco, no tienes permiso para entrar".


Causas más comunes de este error en WordPress y PrestaShop

Antes de lanzarnos a solucionar, es importante entender por qué ocurre. Estas son las causas más habituales:

  1. Contraseña incorrecta en el archivo de configuración.
  2. Usuario de base de datos mal escrito o con caracteres extra.
  3. El usuario no tiene permisos sobre la base de datos concreta.
  4. La base de datos no existe o fue eliminada.
  5. El host de la base de datos es incorrecto (por ejemplo, usar localhost cuando debería ser otro servidor).
  6. Cambios recientes en el panel de control del hosting (como Syspanel).
  7. Problemas con la caché de MySQL o conexiones agotadas.

Paso 1: Revisar el archivo de configuración de tu CMS

Para WordPress

El archivo que contiene los datos de conexión a la base de datos se llama wp-config.php y se encuentra en la raíz de tu instalación.

Para revisarlo, necesitas acceder a tu hosting por FTP o a través del administrador de archivos de tu panel de control.

Busca estas líneas:

define('DB_NAME', 'tu_base_de_datos');
define('DB_USER', 'tu_usuario');
define('DB_PASSWORD', 'tu_contraseña');
define('DB_HOST', 'localhost');

[WARNING] Ten mucho cuidado al editar este archivo. Un solo carácter mal puesto puede romper tu sitio web por completo. Si no estás seguro, haz una copia de seguridad antes de tocar nada.

Para PrestaShop

PrestaShop guarda esta información en el archivo app/config/parameters.php. Busca algo similar a esto:

'database_host' => 'localhost',
'database_name' => 'tu_base_de_datos',
'database_user' => 'tu_usuario',
'database_password' => 'tu_contraseña',

Comprueba que los valores coinciden exactamente con los datos que te proporcionó tu proveedor de hosting o los que configuraste en tu panel de control.


Paso 2: Verificar los datos desde tu panel de control

Si los archivos de configuración parecen correctos, el siguiente paso es comprobar que los datos realmente existen y son válidos.

Si usas Syspanel (antiguo HestiaCP)

[INFO] Syspanel es el panel de control que utilizamos en nuestros servidores. Puedes acceder a él escribiendo https://tu-dominio.com:2106 en tu navegador. Recuerda que el puerto de acceso es el 2106, no el típico 2083 ni el 8443.

Una vez dentro:

  1. Busca la sección de Bases de Datos.
  2. Verás una lista con todas las bases de datos creadas.
  3. Comprueba que la base de datos que buscas existe y que el usuario asociado es exactamente el que aparece en tu archivo de configuración.
  4. Si no recuerdas la contraseña, puedes cambiarla desde aquí. Generalmente hay un botón para "Cambiar contraseña" o similar.

[TIP] En Syspanel, los nombres de usuario y base de datos suelen tener un prefijo. Por ejemplo, si tu usuario de sistema es cliente123, la base de datos podría llamarse cliente123_wordpress y el usuario cliente123_admin. Este prefijo es obligatorio y debe aparecer en tu archivo de configuración.


Paso 3: Probar la conexión manualmente

Una forma rápida de saber si el problema es de credenciales o de otra cosa es intentar conectarte directamente a MySQL.

Puedes hacerlo desde phpMyAdmin (si tu hosting lo tiene) o desde la terminal si tienes acceso SSH.

Desde phpMyAdmin

  1. Entra a phpMyAdmin desde tu panel (en Syspanel, suele haber un enlace directo).
  2. Prueba a iniciar sesión con el usuario y contraseña que tienes en tu archivo de configuración.
  3. Si no te deja entrar, el problema es de credenciales.
  4. Si entras, verifica que la base de datos aparece en el listado de la izquierda.

Desde la terminal (SSH)

mysql -u tu_usuario -p tu_base_de_datos

Te pedirá la contraseña. Si la introduces y aparece el prompt de MySQL, todo está bien. Si ves el error Access denied, confirma que el usuario o la contraseña son incorrectos.


Paso 4: Solución de problemas más comunes

4.1 El usuario no tiene permisos sobre la base de datos

A veces el usuario existe y la contraseña es correcta, pero el usuario no tiene privilegios sobre la base de datos concreta.

Si tienes acceso a MySQL como administrador (root), ejecuta:

GRANT ALL PRIVILEGES ON tu_base_de_datos.* TO 'tu_usuario'@'localhost';
FLUSH PRIVILEGES;

4.2 El host de la base de datos no es "localhost"

En algunos hostings, especialmente en servidores compartidos o con MySQL en un servidor separado, el host no es localhost sino algo como mysql.tudominio.com o una IP.

Revisa la información que te dio tu proveedor. En Syspanel, esta información aparece en la sección de Bases de Datos.

4.3 Has cambiado la contraseña recientemente

Si acabas de cambiar la contraseña en tu panel de control, es posible que el archivo de configuración de tu CMS siga teniendo la anterior.

También puede ocurrir lo contrario: cambiaste la contraseña en el archivo de configuración pero no en el panel.

[WARNING] Si cambias la contraseña desde el panel de control, asegúrate de actualizarla también en wp-config.php o parameters.php. Si no, tu sitio dejará de funcionar inmediatamente.

4.4 La caché de MySQL está saturada

En sitios con mucho tráfico, MySQL puede agotar el número máximo de conexiones. Esto puede mostrar un error similar.

Solución temporal: Reinicia MySQL desde tu panel de control o pide a tu proveedor que lo haga.

Solución definitiva: Optimiza tu base de datos eliminando datos innecesarios y usando plugins de caché.


Paso 5: Reparar la base de datos de WordPress

WordPress tiene una herramienta integrada para reparar bases de datos. Para activarla:

  1. Añade esta línea a tu wp-config.php justo antes de la línea que dice That's all, stop editing!:
define('WP_ALLOW_REPAIR', true);
  1. Ve a tudominio.com/wp-admin/maint/repair.php
  2. Pulsa en "Reparar base de datos".
  3. Cuando termine, elimina esa línea del archivo de configuración.

[INFO] Esta herramienta puede tardar varios minutos si tu base de datos es grande. No interrumpas el proceso.


Paso 6: Restaurar desde una copia de seguridad

Si has probado todo lo anterior y nada funciona, es posible que la base de datos esté corrupta o haya sido eliminada accidentalmente.

En ese caso:

  1. Ve a tu panel de control (Syspanel, puerto 2106).
  2. Busca la sección de Copias de Seguridad o Backups.
  3. Localiza la copia más reciente de tu base de datos.
  4. Restáurala. Ten en cuenta que perderás los cambios realizados desde esa copia.

[TIP] Si no tienes copias de seguridad automáticas, configúralas cuanto antes. Es la mejor inversión de tiempo que puedes hacer para tu web.


Preguntas frecuentes (FAQ)

¿Por qué me sale este error después de migrar mi web?

Es muy común. Al migrar, los datos de conexión cambian. Asegúrate de actualizar el archivo de configuración con los nuevos datos de tu nuevo hosting.

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

Sí, es posible, pero no recomendable por seguridad. Cada aplicación debería tener su propio usuario con permisos solo sobre su base de datos.

¿Qué hago si no tengo acceso al panel de control?

Contacta con tu proveedor de hosting. Ellos podrán verificar las credenciales y los permisos por ti.

¿Este error puede afectar a mi SEO?

Sí, indirectamente. Si tu sitio está caído durante mucho tiempo, los buscadores pueden penalizarte. Además, los usuarios que intenten acceder tendrán una mala experiencia. Por eso es importante solucionarlo rápido.

¿Cuánto tarda en solucionarse?

En la mayoría de los casos, menos de 10 minutos si el problema es de credenciales. Si hay que restaurar una copia de seguridad, puede llevar más tiempo.


Resumen y consejos finales

El error Access denied for user en MySQL es uno de los más frecuentes en WordPress y PrestaShop, pero también de los más fáciles de resolver si sigues un orden lógico:

  1. Revisa el archivo de configuración de tu CMS.
  2. Verifica los datos en tu panel de control (Syspanel, puerto 2106).
  3. Prueba la conexión manualmente con phpMyAdmin o SSH.
  4. Comprueba los permisos del usuario sobre la base de datos.
  5. Reinicia MySQL si sospechas de saturación.
  6. Repara la base de datos con la herramienta de WordPress.
  7. Restaura una copia de seguridad como último recurso.

[TIP] Mantén siempre una copia de seguridad actualizada de tu base de datos y de tus archivos de configuración. Nunca sabes cuándo la vas a necesitar.

Si después de seguir todos estos pasos el error persiste, no dudes en contactar con tu proveedor de hosting. A veces el problema está en el servidor y no en tu configuración, y ellos tendrán acceso a herramientas más avanzadas para diagnosticarlo.

Recuerda que la paciencia es clave. Ve paso a paso, sin prisas, y sobre todo, no hagas cambios drásticos sin tener una copia de seguridad. Con un poco de método, tu web volverá a estar funcionando en muy poco tiempo.

¿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