Al gestionar un sitio desarrollado en WordPress, es crucial garantizar el óptimo funcionamiento de la base de datos.
Aunque pueden surgir diversos errores en nuestra base de datos, cada problema tiene su solución, y el error MySQL 1045 del que trataremos a continuación no es una excepción.
Este error puede manifestarse de distintas maneras, desde impedirnos acceder al panel de administración de WordPress hasta aparecer cuando el modo de depuración está activado, o incluso, en el peor de los escenarios, provocar la caída del sitio con el mensaje clásico “Error al establecer una conexión con la base de datos”.
En este artículo, abordaremos en qué consiste el error MySQL 1045 (Access Denied) y cómo podemos resolverlo de manera sencilla.
Tabla de contenidos
- 1 ¿Qué es el error MySQL 1045?
- 2 Motivos del error 1045 en MySQL
- 3 ¿Cómo solucionar el error MySQL 1045 (Access Denied)?
- 4 Conclusión
¿Qué es el error MySQL 1045?
El error MySQL 1045, también conocido como “Error de acceso denegado”, suele ser un dolor de cabeza para quienes trabajan con bases de datos MySQL, especialmente en entornos como WordPress.
Básicamente, este error ocurre cuando el servidor MySQL no reconoce las credenciales que tenemos predefinidas, ya sea porque la contraseña sea incorrecta o porque el usuario que se encuentra establecido no cuenta con los permisos necesarios para acceder a la base de datos.
Por lo general, en cada ocasión que se realiza una consulta desde el sitio web a la base de datos es necesario validar la conexión con el servidor MySQL, cuando recibimos como respuesta el error 1045, significa que el servidor MySQL no pudo verificar las credenciales de acceso.
El error también puede manifestarse de la siguiente manera:
[root@localhost ~]# mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Esto puede ser ocasionado por varias circunstancias tal como ya hemos hecho mención, puede ser una contraseña incorrecta, un nombre de usuario mal escrito o una configuración errada de los permisos de usuario en la base de datos.
Sabemos que es sumamente alarmante el no poder visualizar de forma correcta nuestro sitio web, es por ello que abordaremos los motivos y las posibles soluciones para recuperar el acceso completo y pleno a nuestra base de datos.
Motivos del error 1045 en MySQL
Considerando lo que el error representa, los motivos principales por los que se puede manifestar el error 1045 en MySQL podemos mencionar los siguientes:
Credenciales incorrectas: las credenciales para iniciar sesión y establecer una conexión satisfactoria con la base de datos son incorrectas, es uno de los principales motivos por el cual se genera el error 1045 en MySQL.
Permisos insuficientes: cada base de datos tiene uno o más usuarios con permisos correspondientes que les permite interactuar directamente con ella, si el usuario en uso no posee los permisos necesarios para acceder al servidor MySQL o a una base de datos en concreto, se generará el error.
Usuario inexistente: continuando con el punto anterior, si el usuario en lugar de no tener los permisos simplemente no se encuentra asociado a la base de datos o peor aún no existe en el servidor MySQL, es motivo suficiente para que se manifieste el error.
Host o puerto incorrectos: si al momento de establecer la conexión se intenta conectar desde un host o puerto diferente al configurado para el usuario en el servidor MySQL, se generará el error.
Requisitos de SSL: la falta de un certificado SSL necesario para una conexión segura según la configuración del servidor MySQL puede impedir el establecimiento de la conexión, dando lugar al error.
Interferencia en la línea de comandos: si la gestión y conexión con el servidor MySQL se realiza a través de líneas de comandos y se utilizan caracteres especiales u otros elementos que interfieren con los comandos de conexión, es probable que surja este error.
Aunque las credenciales incorrectas suelen ser la causa más común y evidente del error 1045, también debemos considerar otros factores como permisos en WordPress insuficientes, configuración errónea del host o puerto de conexión, problemas con la línea de comandos utilizada o la falta de cumplimiento de los requisitos de seguridad SSL del servidor MySQL.
¿Cómo solucionar el error MySQL 1045 (Access Denied)?
Ya teniendo más contexto sobre que es y cuáles son las posibles causas del error MySQL 1045, vamos a presentar las posibles soluciones a continuación:
Verificar conexión con la base de datos desde wp-config
Uno de los aspectos a revisar como prioridad es la configuración establecida en el archivo wp-config.php. Este archivo no solo es crucial para el correcto funcionamiento de nuestro sitio en WordPress, sino que también contiene declaraciones que establecen la conexión del usuario y la contraseña asociados a la base de datos en uso.
Para validar este archivo, podemos hacerlo a través de FTP (usando Filezilla por ejemplo) o desde el administrador de archivos en el panel proporcionado por nuestro servicio de hosting web. En este ejemplo, lo haremos desde WePanel para ilustrar el proceso.
En el directorio que contiene nuestra instalación de WordPress vamos a ubicar en su raíz el archivo wp-config.php, al encontrarlo vamos a proseguir a editarlo para poder ver su contenido y cambiarlo de ser necesario.
Ya con la vista del editor del archivo wp-config.php hay cuatro declaraciones que debemos verificar que sean las correctas:
- El nombre de la base de datos de WordPress
- El nombre de usuario
- La contraseña correspondiente al usuario
- El host donde se encuentra la base de datos, por lo general es localhost, pero hay ciertos casos especiales en el que puede cambiar
Validar los privilegios del usuario desde WePanel
Si las credenciales usadas en el archivo wp-config.php son correctas, al igual que el nombre de la base de datos y el host es probable que el usuario asociado con la base de datos no tenga todos los privilegios que le permitan ejecutar todas las acciones necesarias.
Podemos validar los privilegios del usuario en uso desde nuestro panel de control, en el caso de WePanel desde el apartado de “Bases de datos” nos vamos a dirigir a la opción de “Gestión de bases de datos”.
Ya en esta vista vamos a poder apreciar un listado tanto de las bases de datos creadas como de los usuarios existentes.
Este último apartado podremos observar que cada usuario puede estar vinculado a múltiples bases de datos, es por ello que dependiendo de la base de datos asociada y configurada en el archivo wp-config,php debemos validar sus privilegios.
Al escoger “Ver o modificar privilegios” se nos va a desplegar un nuevo panel donde podremos apreciar todos los privilegios asociados entre el usuario y la base de datos correspondiente, hacemos hincapié en validar siempre que la información a consultar sea la correcta.
Tanto el nombre de la base de datos como el usuario el cual los privilegios estamos consultando.
Una vez editados los permisos y privilegios de ser necesario, solo bastará con guardar cambios en el botón de “Modificar”
Restablecer contraseña de WordPress desde phpMyAdmin
El error MySQL 1045 suele ocurrir con mayor frecuencia cuando la conexión con la base de datos es incorrecta. Sin embargo, también puede surgir si las credenciales de un usuario específico no coinciden con las registradas.
En caso de olvidar las credenciales correctas y si no es factible restablecer la contraseña utilizando los métodos convencionales, aún es posible cambiarla.
Si tenemos acceso completo al panel de control que nos permite gestionar múltiples recursos de nuestro hosting web, es probable que contemos con acceso a phpMyAdmin.
A través de phpMyAdmin, podremos ingresar y modificar la contraseña del usuario que está causando el error. Continuaremos utilizando WePanel como ejemplo para demostrar este procedimiento.
Con la base de datos correcta seleccionada vamos a ubicar la tabla llamada “wp_users”, recordemos que el prefijo (wp_) puede variar según se haya configurado la base de datos.
Ya con la tabla identificada vamos a proseguir a ubicar y editar al usuario que está experimentando el error con su contraseña.
Luego en la siguiente vista debemos colocar en el campo de “user_pass” la nueva contraseña que queremos establecer, esta contraseña es necesario que se encuentre encriptada, es por ello que desde la columna de “Función” debemos establecer una codificación MD5.
Solo bastará con guardar los cambios en la tabla para actualizar la contraseña del usuario de WordPress.
Realizar pruebas desde la terminal de comandos
Si nuestro proveedor de servicios donde tenemos alojado nuestro sitio web nos proporciona la capacidad de utilizar la terminal de comandos es posible realizar varias validaciones en lo que respecta a la comunicación con el servidor de MySQL.
La terminal de comandos es posible por medio del acceso SSH, el cual podemos definir de forma simple como un protocolo de red criptográfico que permite establecer conexiones seguras entre sistemas informáticos otorgándonos la capacidad de acceder y controlar de forma remota un sistema operativo o servidor utilizando este protocolo.
En el caso de Webempresa el acceso SSH no se encuentra disponible de entrada en los planes de hosting disponibles, sin embargo, sí que es posible activarlo al realizar una solicitud al soporte de tickets.
Validar los privilegios del usuario desde SSH
Si bien los privilegios ya los hemos verificado desde la gestión de base de datos que nos permite el panel de control de nuestro hosting web, esta acción puede también ser ejecutada desde la terminal de comandos.
Podemos establecer una conexión colocando lo siguiente en la terminal de comandos.
ssh username@ipaddress
Debemos remplazar “username” con el nombre real del usuario asociado a la base de datos y “ipaddress” con la dirección IP del servidor actual.
Si tenemos una conexión satisfactoria vamos a proseguir a introducir lo siguiente:
mysql -uroot -p
Por último, vamos a ingresar el siguiente comando, que va a otorgar todos los privilegios al usuario con el que hemos iniciado esta serie de comandos:
GRANT ALL PRIVILEGES ON . TO 'root'@'localhost' IDENTIFIED BY 'password';
Debemos cambiar el apartado de “password” por alguna contraseña segura de preferencia:
Validar que el servidor MySQL se esté comunicando
Otro método que vale la pena validar desde la terminal de comandos es asegurarnos de que el servidor MySQL sí se encuentre conectado al puerto correcto.Para ello vamos a usar el siguiente comando:
systemtl status MySQL
En caso de que el servidor no se encuentre inicializado, podemos ingresar el siguiente comando:
systemtl start MySQL
Sabiendo que el servidor MySQL se encuentra activo, debemos ingresar con el siguiente comando:
mysql -uroot -p
Luego es necesario que ingresemos con nuestro usuario y contraseña, recordemos cambiar “username” y “password” por los datos correctos:
mysql -username -password
Ahora es momento de validar cuál es el puerto por el cual se encuentra conectado el servidor MySQL usando el comando siguiente:
SHOW VARIABLES LIKE 'port';
En este caso nos debería de arrojar que el puerto conectado al servidor MySQL corresponde al puerto “3306” el cual corresponde al puerto de MySQL por defecto.
Si este no es el caso, es necesario ubicar el archivo de configuración de MySQL el cual puede encontrarse en una ruta similar a la siguiente “/etc/mysql/mysql.conf.d/mysqld.cnf”.
Al cambiar el puerto de forma satisfactoria en el archivo es necesario resetear y volver a inicializar el servidor MySQL usando el siguiente comando:
systemctl restart mysql
Si al consultar nuevamente el puerto con el comando antes usado sigue arrojando error u otro número de puerto, lo ideal es contactar directamente con el soporte del proveedor de hosting.
Contactar con soporte
(Visita el sitio web haciendo clic en la imagen ↑)
Si los métodos explicados anteriormente, incluso los últimos que pueden parecer más complejos de lo que realmente son, no logran resolver el problema, lo ideal es comunicarse con el soporte técnico del proveedor de hosting donde está alojado nuestro sitio web.
Un proveedor de calidad responderá rápidamente y podrá revisar las configuraciones del servidor desde una perspectiva técnica y especializada. Esto puede permitirles solucionar el error sin necesidad de que realicemos ningún ajuste por nuestra cuenta.
Sin embargo, seguirá siendo beneficioso para nosotros comprender qué es y por qué se genera el error MySQL 1045.
En Webempresa, garantizamos soporte las 24 horas del día, los 7 días de la semana, a través de diversos canales de comunicación. Ningún problema o pregunta es demasiado pequeño para nuestros compañeros de soporte.
Conclusión
En el recorrido que hemos realizado en este artículo, estamos listos para enfrentarnos al error MySQL 1045 en WordPress. Aunque este error puede ser desafiante, no debemos verlo como un obstáculo insuperable.
La solución puede ser tan simple como corregir problemas de permisos, rectificar errores en las credenciales de inicio de sesión, o abordar problemas técnicos específicos. Al explorar las causas del error, también tenemos a nuestro alcance una variedad de métodos que pueden ayudarnos a encontrar una solución.
A pesar de la frustración que puede causar el error MySQL 1045, resolverlo no solo restaurará la funcionalidad completa de nuestro sitio web, sino que también nos permitirá continuar gestionándolo con tranquilidad, sabiendo que todo está configurado correctamente.
También te puede interesar:
- Crear usuarios en base de datos MySQL
- Estructura de Base de Datos en WordPress
- Cómo limpiar la base de datos de WordPress
- Tablas de la base de datos de WooCommerce: ¿cuáles son?
- Crear una base de datos MySQL en cPanel fácilmente
- Crear usuario desde la base de datos de WordPress
¿Te ha resultado útil este artículo?
Equipo de soporte WordPress y Woocommerce en Webempresa.