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

Cómo solucionar el error 'mysqli::real_connect(): (HY000/1045): Access denied for user' en WordPress

Actualizado el 21 de junio de 2026

¿Acabas de intentar entrar en tu WordPress y te has encontrado con un mensaje de error que parece escrito en otro idioma? Algo como mysqli::real_connect(): (HY000/1045): Access denied for user. Tranquilo, no eres el primero al que le pasa y, sobre todo, no es el fin del mundo.

Este error es uno de los más comunes en el mundo del hosting y, aunque parezca técnico, tiene una explicación muy sencilla: WordPress no ha podido conectarse a tu base de datos porque las credenciales que tiene guardadas no son correctas o no tienen los permisos adecuados.

Piénsalo así: tu web es una casa, la base de datos es el sótano donde se guardan todas tus pertenencias (contenidos, usuarios, configuraciones) y WordPress es el mayordomo que necesita una llave para bajar a por ellas. Si la llave no es la correcta, el mayordomo se queda en la puerta y te muestra ese mensaje de error.

En esta guía extensa y detallada, vamos a desgranar paso a paso cómo solucionar el error access denied WordPress, el famoso mysqli real_connect error y, en definitiva, cómo arreglar la solución base de datos WordPress para el error 1045 MySQL. No necesitas ser un experto, solo seguir las instrucciones con calma.

Vamos a ello.

¿Por qué aparece este error? Las causas más comunes

Antes de ponernos a tocar nada, es vital entender por qué ocurre. Esto te ahorrará tiempo y quebraderos de cabeza. El error 1045 MySQL aparece cuando el servidor rechaza la conexión. Las razones suelen ser estas:

  • Contraseña incorrecta: Es la causa más habitual. Alguien cambió la contraseña de la base de datos y no actualizó el archivo de configuración de WordPress (wp-config.php).
  • Usuario incorrecto: El nombre de usuario de la base de datos no existe o está mal escrito en la configuración.
  • Permisos insuficientes: El usuario de la base de datos existe, pero no tiene permisos para acceder a esa base de datos concreta. Es como tener la llave del portal pero no la del piso.
  • Host incorrecto: El servidor de la base de datos (normalmente localhost, pero a veces es un servidor remoto como mysql.tudominio.com) no es el correcto.
  • Cambios recientes: Has migrado tu web a un nuevo hosting, has restaurado una copia de seguridad o has tocado algo en el panel de control de tu hosting (cPanel, Plesk, Syspanel, etc.) y algo se ha desincronizado.

Paso 1: Localiza el archivo de configuración (wp-config.php)

Este es el archivo más importante para solucionar este problema. Contiene las llaves que necesita WordPress para entrar al sótano. Se encuentra en la raíz de tu instalación.

¿Cómo encontrarlo?

  1. Accede a tu panel de control de hosting (cPanel, Plesk, Syspanel, etc.) o a un cliente FTP como FileZilla.
  2. Navega hasta la carpeta donde está instalado WordPress. Normalmente es public_html, htdocs o www. Si tu web está en un subdirectorio (ej: public_html/miweb), ve ahí.
  3. Busca el archivo llamado wp-config.php.

[WARNING] No lo confundas con wp-config-sample.php. Ese es solo un ejemplo y no sirve para nada.

Paso 2: Revisa y corrige los datos de conexión

Ahora viene la parte importante. Abre el archivo wp-config.php con un editor de texto plano (como el Bloc de notas o Sublime Text). Busca las líneas que definen las constantes de la base de datos. Se parecen a esto:

// ** Configuración de la base de datos ** //
define( 'DB_NAME', 'tu_usuario_wp_basededatos' );
define( 'DB_USER', 'tu_usuario_wp_usuario' );
define( 'DB_PASSWORD', 'tu_contraseña_super_secreta' );
define( 'DB_HOST', 'localhost' );

Aquí es donde se esconde el misterio. Debes asegurarte de que estos cuatro valores son exactamente los que tienes en tu panel de control de hosting.

Verificando cada valor

  • DB_NAME: Es el nombre de tu base de datos. Asegúrate de que no le falta un carácter.
  • DB_USER: Es el nombre de usuario que tiene acceso a esa base de datos. En muchos hostings, el usuario tiene un prefijo (ej: usu1_miusuario).
  • DB_PASSWORD: La contraseña. Ojo con los espacios en blanco al copiar y pegar, pueden colarse y dar error.
  • DB_HOST: El 99% de las veces es localhost. Pero si tu hosting usa servidores de bases de datos remotos, aquí aparecerá una URL del tipo mysql.tudominio.com o localhost:/var/run/mysqld/mysqld.sock.

[TIP] Si estás usando Syspanel (antes conocido como HestiaCP), ten en cuenta que el acceso a su panel de control es a través del puerto 2106 (ej: https://tu-dominio.com:2106). Una vez dentro, podrás ver la lista de bases de datos y usuarios para verificar estos datos.

Paso 3: La solución más directa: Cambiar la contraseña desde el panel de control

Si sospechas que la contraseña es el problema, la forma más rápida y segura es cambiarla directamente desde tu panel de control de hosting, en lugar de intentar adivinarla.

Te explico cómo hacerlo en un panel genérico (cPanel o similar):

  1. Entra en tu panel de control (cPanel, Plesk, Syspanel, etc.).
  2. Busca la sección "Bases de Datos MySQL".
  3. Localiza el usuario que tienes en tu wp-config.php.
  4. Cambia su contraseña. Normalmente hay un botón para "Cambiar contraseña" o "Editar".
  5. CRUCIAL: Copia la nueva contraseña y pégala en tu archivo wp-config.php, sustituyendo a la antigua en la línea DB_PASSWORD.

[INFO] En Syspanel (puerto 2106), el proceso es similar. Busca la sección de bases de datos, selecciona el usuario y podrás cambiar su contraseña. Esta acción es inmediata.

Paso 4: Verifica los permisos del usuario en la base de datos

A veces, la contraseña es correcta, pero el usuario no tiene "permiso de acceso" a esa base de datos. Esto pasa mucho después de migraciones.

Cómo solucionarlo:

  1. Ve a la sección de "Bases de Datos MySQL" en tu panel de control.
  2. Busca la opción de "Añadir usuario a la base de datos" o "Gestionar privilegios".
  3. Selecciona tu usuario y tu base de datos, y añádelo si no está.
  4. Cuando lo hagas, te preguntará por los privilegios. Marca "TODOS LOS PRIVILEGIOS" para asegurarte de que WordPress puede hacer su trabajo (crear tablas, insertar datos, etc.).

Paso 5: Comprueba el Host de la Base de Datos

Este es un error más sutil. Si tu hosting usa un servidor de bases de datos separado, el DB_HOST no será localhost.

¿Cómo saberlo?

  • Revisa la documentación de tu hosting.
  • Revisa los correos de bienvenida de tu hosting.
  • En el panel de control, suele aparecer el nombre del servidor MySQL. A veces se llama localhost y otras veces algo como mysql.tu-servidor.com.

Si has verificado todo y sigue fallando, prueba a cambiar localhost por 127.0.0.1. A veces, el servidor no resuelve la palabra "localhost" correctamente.

Paso 6: Solución de emergencia: Reparar y optimizar la base de datos

Si los datos son correctos pero el error persiste, puede que la base de datos esté corrupta o tenga algún problema interno. WordPress tiene una herramienta oculta para esto.

Cómo activarla:

  1. Abre tu archivo wp-config.php.
  2. Busca la línea que dice define( 'WP_DEBUG', false ); o similar.
  3. Añade justo encima de esa línea lo siguiente:
define('WP_ALLOW_REPAIR', true);
  1. Guarda el archivo.
  2. Ve a tu navegador y escribe esta URL: https://tudominio.com/wp-admin/maint/repair.php
  3. Haz clic en "Reparar base de datos". WordPress hará su magia.

[WARNING] Esta es una herramienta de emergencia. Una vez que hayas terminado, ELIMINA esa línea de código de tu wp-config.php. Dejar esa herramienta activa es un riesgo de seguridad grave.

Paso 7: Restablece la contraseña directamente en la base de datos (método avanzado)

Si nada de lo anterior funciona y tienes acceso a phpMyAdmin, puedes forzar el cambio de contraseña del usuario de la base de datos directamente.

  1. Entra en phpMyAdmin desde tu panel de control.
  2. Selecciona tu base de datos.
  3. Haz clic en la pestaña "SQL".
  4. Ejecuta el siguiente comando, reemplazando tu_usuario y localhost con tus datos:
SET PASSWORD FOR 'tu_usuario'@'localhost' = PASSWORD('tu_nueva_contraseña');
  1. Pulsa "Continuar".
  2. Ahora, actualiza la contraseña en tu wp-config.php con la nueva.

Paso 8: ¿Has migrado tu web? Revisa los prefijos de las tablas

Si vienes de un hosting antiguo, es posible que el prefijo de las tablas de tu base de datos sea diferente. Normalmente es wp_, pero podría ser wp_2_ o similar.

Cómo comprobarlo:

  1. Entra en phpMyAdmin.
  2. Haz clic en tu base de datos.
  3. Mira los nombres de las tablas. Si empiezan por wp_, perfecto. Si empiezan por otra cosa (ej: miweb_), esa es la pista.

En tu wp-config.php, busca la línea:

$table_prefix = 'wp_';

Si el prefijo es diferente, cámbialo por el que ves en phpMyAdmin.


FAQ: Preguntas frecuentes sobre el error 1045

P: ¿Por qué me pasa esto si no he tocado nada?
R: A veces, el hosting realiza cambios de seguridad, o un plugin actualizado puede haber modificado algo. También es común que el servidor tenga un problema temporal.

P: ¿Puedo perder mis datos si borro la base de datos?
R: ¡NO BORRES NADA! Este error no afecta a tus datos, solo a la conexión. No toques la base de datos en sí, solo los usuarios y contraseñas.

P: ¿Qué es Syspanel y por qué se menciona?
R: Syspanel es un panel de control de hosting (anteriormente conocido como HestiaCP). Es la interfaz desde la que gestionas tus sitios web, bases de datos, correos, etc. Se accede por el puerto 2106.

P: He seguido todos los pasos y sigue sin funcionar, ¿qué hago?
R: Respira. Es hora de contactar con el soporte técnico de tu hosting. Dales el mensaje de error exacto y diles que ya has verificado las credenciales. Ellos podrán ver los logs del servidor y encontrar el problema real en segundos.

P: ¿Es normal que el archivo wp-config.php tenga tantas cosas raras?
R: Sí, es el archivo de configuración principal. Las líneas que empiezan por define son constantes que configuran WordPress. No toques nada que no sea lo que te hemos indicado.


Resumen final: Tu checklist para salir del apuro

Para que no te pierdas, aquí tienes la lista de verificación definitiva:

  1. Encuentra el archivo wp-config.php.
  2. Compara DB_NAME, DB_USER, DB_PASSWORD y DB_HOST con los datos de tu panel de control.
  3. Cambia la contraseña desde el panel si no estás seguro.
  4. Verifica que el usuario tiene "TODOS LOS PRIVILEGIOS" sobre la base de datos.
  5. Comprueba que el DB_HOST no sea un servidor remoto.
  6. Ejecuta la herramienta de reparación de WordPress si todo lo demás falla.
  7. Contacta con el soporte si estás atascado.

El error access denied WordPress es un contratiempo, pero con esta guía, tienes todas las herramientas para resolverlo. La paciencia es tu mejor aliada. Ve paso a paso, sin prisas, y verás como tu web vuelve a la vida en pocos minutos.

Esperamos que esta solución base de datos WordPress te haya sido de gran ayuda. ¡Buena suerte!

¿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