Cómo solucionar el error 'Access denied for user' en MySQL (WordPress y PrestaShop)
¿Qué significa el error "Access denied for user" en MySQL?
Imagina que intentas entrar a tu casa, pero la llave no gira en la cerradura. El error "Access denied for user" (Acceso denegado para el usuario) es exactamente eso, pero en tu base de datos. Es uno de los errores más comunes en WordPress y PrestaShop, y puede aparecer de la nada, dejando tu tienda o web completamente inaccesible.
Cuando ves este mensaje en pantalla, normalmente se muestra algo como esto:
"Error establishing a database connection" (WordPress)
O
"Link to database cannot be established" (PrestaShop)
Detrás de estos mensajes, en los logs de error o en el panel de control, encontrarás la línea exacta: "Access denied for user 'usuario'@'localhost' (using password: YES)".
Este error significa que MySQL ha rechazado las credenciales que tu aplicación está enviando. Es decir, el usuario, la contraseña o los permisos no son correctos. La buena noticia es que, en el 95% de los casos, tiene una solución sencilla que tú mismo puedes aplicar sin ser un experto.
Las 5 causas más comunes de este error
Antes de lanzarnos a la solución, es importante entender por qué ocurre. Esto te ahorrará tiempo y te ayudará a prevenir que vuelva a pasar.
- Credenciales MySQL incorrectas: Es la causa más frecuente. Las credenciales mysql incorrectas en el archivo de configuración de WordPress (
wp-config.php) o PrestaShop (parameters.php). - Usuario MySQL sin privilegios: El usuario existe, pero no tiene permisos para acceder a la base de datos que tu sitio necesita.
- Cambios en el servidor: Alguien (o algún script) cambió la contraseña del usuario de base de datos, o el hosting restauró una copia de seguridad antigua.
- Servidor MySQL caído o sobrecargado: A veces el problema no es de credenciales, sino que el servicio de base de datos está saturado o detenido.
- Errores en el archivo de configuración: Un espacio extra, una comilla mal puesta o un carácter especial en la contraseña pueden romper la conexión.
Antes de empezar: prepara tus herramientas
Para solucionar este problema necesitarás acceso a dos cosas:
- Tu panel de control de hosting (cPanel, Plesk, Syspanel, etc.). Si usas Syspanel, recuerda que el puerto de acceso es el 2106.
- Un cliente FTP o el administrador de archivos de tu hosting, para editar archivos de configuración.
[INFO] Si tu hosting usa Syspanel, abre tu navegador y escribe
https://tu-dominio.com:2106para acceder al panel. Ahí podrás gestionar bases de datos y usuarios.
Paso a paso: Cómo solucionar el error en WordPress
Paso 1: Verifica las credenciales en tu archivo wp-config.php
El primer paso es revisar qué credenciales está usando WordPress. Sigue estos pasos:
- Accede a tu hosting por FTP o al Administrador de Archivos del panel.
- Localiza la carpeta raíz de tu WordPress (normalmente
public_htmlowww). - Busca el archivo llamado
wp-config.php. - Ábrelo con un editor de texto (Bloc de notas, Sublime Text, etc.).
- Busca las siguientes 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] No compartas estos datos con nadie. Son la llave maestra de tu web.
Anota en un papel el nombre de la base de datos, el usuario y la contraseña. Ahora vamos a verificar si esos datos son correctos.
Paso 2: Comprueba los datos en tu panel de hosting
Ahora vamos a verificar que esas credenciales existen y son correctas:
- Accede a tu panel de hosting (Syspanel, cPanel, etc.).
- Busca la sección de "Bases de Datos MySQL" o "MySQL Databases".
- Verifica que el nombre de la base de datos coincida exactamente con el
DB_NAMEde tu archivo. - Verifica que el usuario de la base de datos coincida con el
DB_USER. - Si no recuerdas la contraseña, puedes restablecerla desde el panel. Haz clic en "Cambiar contraseña" y crea una nueva.
[TIP] En muchos hostings, el nombre de la base de datos y del usuario llevan un prefijo con el nombre de tu cuenta (ejemplo:
tuweb_bdytuweb_admin). Asegúrate de incluirlo completo.
Paso 3: Actualiza el archivo wp-config.php
Si has cambiado la contraseña o has detectado que el usuario era incorrecto, edita el archivo wp-config.php:
- Sustituye los valores por los correctos.
- Guarda el archivo.
- Sube el archivo modificado al servidor (si lo editaste localmente).
Paso 4: Verifica los permisos del usuario MySQL
A veces el usuario existe y la contraseña es correcta, pero el usuario no tiene permisos sobre la base de datos. Para solucionarlo:
- En tu panel de hosting, entra en la sección de "MySQL Databases".
- Busca la opción de "Añadir usuario a base de datos" o "Manage User Privileges".
- Asegúrate de que tu usuario está vinculado a la base de datos correcta.
- Marca TODOS los privilegios (ALL PRIVILEGES) para ese usuario.
[TIP] Algunos hostings tienen un botón que dice "Grant All Privileges" (Otorgar todos los privilegios). Úsalo y guarda los cambios.
Paso 5: Reinicia el servicio MySQL (si es posible)
En algunos hostings compartidos no puedes reiniciar MySQL directamente, pero en VPS o servidores dedicados sí:
- En Syspanel, ve a la sección de "Servicios" y busca MySQL/MariaDB.
- Haz clic en "Reiniciar".
Si no tienes acceso, contacta con el soporte de tu hosting y pídeles que verifiquen el estado del servicio.
Cómo solucionar el error en PrestaShop
PrestaShop es un poco diferente a WordPress, pero el proceso es similar. Aquí te lo explicamos:
Paso 1: Localiza el archivo parameters.php
En PrestaShop, la configuración de la base de datos se encuentra en:
/config/parameters.php(para versiones 1.7 y posteriores)/config/settings.inc.php(para versiones 1.6 y anteriores)
Accede por FTP o Administrador de Archivos y ábrelo con un editor.
Paso 2: Verifica los parámetros de conexión
Busca un bloque similar a este:
'parameters' => [
'database_host' => 'localhost',
'database_name' => 'tu_base_de_datos',
'database_user' => 'tu_usuario',
'database_password' => 'tu_contraseña',
]
Aplica el mismo proceso que explicamos para WordPress: verifica en tu panel que los datos son correctos, restablece la contraseña si es necesario y actualiza el archivo.
Paso 3: Limpia la caché de PrestaShop
Después de corregir los datos, PrestaShop puede tener una caché guardada con los datos antiguos. Para limpiarla:
- Accede por FTP a la carpeta
/var/cache/de tu PrestaShop. - Borra todos los archivos que haya dentro de
cacheylogs(no borres las carpetas, solo su contenido). - Ve a
/config/y busca el archivocache.phpocache.inc.phpy bórralo (PrestaShop lo recreará automáticamente).
[WARNING] No borres el archivo
parameters.php, solo los archivos de caché. Si borras el archivo de configuración, tu tienda quedará inservible.
Soluciones avanzadas para el error "Access denied for user"
Si después de verificar las credenciales y los permisos el error persiste, prueba estas soluciones adicionales:
1. Revisa el host de la base de datos
A veces el problema no es el usuario o la contraseña, sino el servidor de base de datos. En muchos hostings no es localhost, sino algo como mysql.tudominio.com o localhost:3306.
- Ve a tu panel de hosting y busca la sección de "Información de la base de datos".
- Copia el nombre del servidor (host) que te indican.
- Actualiza el
DB_HOSTen WordPress o eldatabase_hosten PrestaShop.
2. Comprueba los logs de error de MySQL
Si tienes acceso a los logs (o tu hosting te los proporciona), busca la línea exacta del error. Normalmente te dirá si el problema es de autenticación (usuario/contraseña) o de permisos.
3. Verifica si hay caracteres especiales en la contraseña
Las contraseñas con caracteres como $, #, @, % o & pueden causar problemas en los archivos de configuración. Si tu contraseña tiene estos caracteres, prueba a cambiar la contraseña en el panel por una solo con letras y números.
[TIP] Si cambias la contraseña, recuerda actualizar también el archivo de configuración. Es un error muy común olvidarse de este paso.
4. Contacta con tu proveedor de hosting
Si has agotado todas las opciones, el problema puede estar en el servidor. Contacta con el soporte técnico de tu hosting y diles:
"Estoy recibiendo el error 'Access denied for user' al conectar mi base de datos MySQL. He verificado las credenciales en el panel y en mi archivo de configuración, pero el error persiste. ¿Pueden verificar los permisos del usuario y el estado del servicio MySQL?"
Preguntas frecuentes (FAQ) sobre este error
¿Puedo perder mis datos si cambio la contraseña de MySQL?
No. Cambiar la contraseña de un usuario de base de datos no afecta a los datos almacenados. Solo necesitas actualizar el archivo de configuración de tu aplicación.
¿Por qué me aparece este error después de una actualización de WordPress o PrestaShop?
Es poco común, pero algunas actualizaciones pueden sobrescribir archivos de configuración. Revisa siempre tus archivos wp-config.php o parameters.php después de una actualización.
¿Qué hago si no encuentro el archivo wp-config.php?
Si usas un hosting gestionado, el archivo puede estar en una ubicación diferente o protegido. Contacta con el soporte de tu hosting para que te indiquen cómo acceder.
¿El error "Access denied for user" puede ser un ataque de hackers?
Es posible, aunque poco frecuente. Si sospechas que alguien ha cambiado tus credenciales, cambia todas las contraseñas de tu hosting y de la base de datos inmediatamente.
¿Cuánto tiempo se tarda en solucionar este error?
Si el problema es solo de credenciales, entre 5 y 10 minutos. Si requiere intervención del hosting, puede tardar de 1 a 24 horas dependiendo del proveedor.
Resumen: Checklist rápida para resolver el error
- He verificado las credenciales en mi panel de hosting.
- He actualizado el archivo
wp-config.php(WordPress) oparameters.php(PrestaShop). - He restablecido la contraseña del usuario MySQL si era necesario.
- He verificado que el usuario tiene todos los privilegios sobre la base de datos.
- He comprobado que el host de la base de datos es correcto.
- He limpiado la caché de PrestaShop (si aplica).
- He contactado con el soporte del hosting si el error persiste.
Conclusión
El error "Access denied for user" puede parecer aterrador al principio, pero como has visto, en la mayoría de los casos es un problema de configuración fácil de resolver. La clave está en ser metódico: verifica las credenciales mysql incorrectas, comprueba los permisos y actualiza los archivos de configuración de tu WordPress o PrestaShop.
Recuerda que, si en cualquier momento te sientes perdido, tu proveedor de hosting está para ayudarte. No dudes en abrir un ticket de soporte si necesitas asistencia adicional.
[INFO] Si tu hosting usa Syspanel, recuerda que puedes acceder a todas las herramientas de gestión de bases de datos desde
https://tu-dominio.com:2106. Ahí encontrarás las secciones de usuarios, bases de datos y permisos que hemos mencionado en esta guía.
Con paciencia y esta guía, tu web volverá a estar operativa en muy poco tiempo. ¡Mucho ánimo!
