Error 1045 (28000) acceso denegado para usuario root localhost (Resuelto)

Publicado: 2023-03-14

"Error 1045 (28000) acceso denegado para el host local raíz del usuario" es un error que se encuentra comúnmente al intentar acceder a MySQL a través del CMS de WordPress. Sin embargo, este error también puede ocurrir en otras situaciones.

El error que está encontrando sugiere que el usuario "raíz" no posee las autorizaciones requeridas para acceder a la base de datos desde localhost. Las razones detrás de este problema pueden ser múltiples, incluida una contraseña incorrecta, un nombre de usuario incorrecto o permisos inadecuados otorgados al usuario.

Estos son algunos pasos que puede seguir para resolver este error

1. Verifique el nombre de usuario y la contraseña

Asegúrese de que está utilizando el nombre de usuario y la contraseña correctos. El nombre de usuario debe ser "root" y la contraseña debe ser la que estableció durante el proceso de instalación.

En caso de que esté utilizando WordPress, debe verificar su archivo wp-config.php . El archivo se puede encontrar en la carpeta principal de WordPress.

wp-config.php

Después de abrir el archivo e intentar editarlo (Visual Studio Code) tendrás esta pantalla:

editar wp-config.php nombre de usuario y contraseña de la base de datos

Compruebe DB_USER y DB_PASSWORD si tienen los valores correctos

 /** Database username */ define( 'DB_USER', 'root' );
 /** Database password */ define( 'DB_PASSWORD', 'root' );

Si no sabe cuál es su nombre de usuario y contraseña para la base de datos, acceda a cPanel > Base de datos > Mysql y compruébelo.

cómo acceder a la base de datos mysql con cpanel

Para cambiar la contraseña de la base de datos de WordPress, siga el tutorial: Cambiar la contraseña de WordPress en PHPMyAdmin

2. Verifique si el usuario tiene los privilegios requeridos

Compruebe si el usuario “root” tiene los privilegios necesarios para acceder a la base de datos.

Paso 1: primero, debe abrir su terminal y escribir ssh [email protected]

 ssh [email protected]

Paso 2: después de un inicio de sesión exitoso, escriba este comando

 mysql -uroot -p

Paso 3: después de agregar su contraseña, puede comenzar a agregar su comando desde el indicador de mysql

Paso 4: puede usar el siguiente comando para verificar los privilegios:

 SHOW GRANTS FOR 'root'@'localhost';

Esto le mostrará la lista de privilegios que tiene el usuario "root" para el servidor "localhost". Si el usuario no tiene los privilegios necesarios, puede otorgarlos usando el siguiente comando:

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'password';

Nota: Reemplace 'contraseña' con la contraseña que desea usar.

Para verificar si el usuario tiene los privilegios requeridos usando phpMyAdmin, siga estos pasos:

  1. Inicie sesión en su cuenta de phpMyAdmin.
  2. Haga clic en la pestaña "Cuentas de usuario".
  3. Seleccione en el usuario raíz (o el que desea cambiar la contraseña)
  4. Haga clic en el enlace Editar privilegios
  5. Aquí puede ver la lista de privilegios que se le han otorgado al usuario.
  6. Asegúrese de que el usuario tenga los privilegios necesarios para acceder a la base de datos.
  7. Si el usuario no tiene los privilegios requeridos, puede otorgarlos seleccionando las casillas de verificación correspondientes y haciendo clic en el botón "Ir".
  8. Una vez que haya otorgado los privilegios requeridos, intente acceder a la base de datos nuevamente para ver si el problema se resolvió.
phpmyadmin editar enlace de privilegios

Se deben verificar los ajustes en el área resaltada:

Privilegios de usuario de phpmyadmin

Nota: si no puede otorgar los privilegios necesarios a través de phpMyAdmin, es posible que deba acceder a la interfaz de línea de comandos de MySQL para otorgar los privilegios.

3. Verifique el estado del servidor MySQL

Asegúrese de que el servidor MySQL se esté ejecutando. Puede verificar el estado del servidor ejecutando el siguiente comando después de iniciar sesión en el shell del servidor:

 systemctl status mysql

Si el servidor no se está ejecutando, inícielo con el siguiente comando:

 systemctl start mysql

Para verificar el estado de Mysql en el alojamiento de cPanel, debe iniciar sesión en su panel de control de alojamiento. Otra forma es contactar directamente con su proveedor de hosting.

4. Compruebe si el servidor MySQL está escuchando el puerto correcto

Asegúrese de que el servidor MySQL esté escuchando el puerto correcto. El puerto predeterminado para MySQL es 3306 .

Para verificar si el servidor MySQL está escuchando el puerto correcto, puede seguir estos pasos:

1. Abra una terminal o símbolo del sistema en su servidor donde esté instalado MySQL.

2. Conéctese al servidor MySQL utilizando el cliente de línea de comandos. Puede usar el siguiente comando, reemplazando username y password con sus credenciales reales de MySQL:

 mysql -u username -p

3. Una vez que esté conectado al servidor MySQL, escriba el siguiente comando para mostrar el número de puerto en el que escucha el servidor MySQL:

SHOW VARIABLES LIKE 'port';

Este comando mostrará el número de puerto en el que está escuchando el servidor MySQL. Por defecto, MySQL escucha en el puerto 3306.

También puede comprobar el número de puerto en el archivo de configuración de MySQL.

El archivo de configuración suele llamarse my.cnf o my.ini y se encuentra en el directorio de instalación de MySQL.

Para encontrar el directorio de instalación de MySQL, puede seguir estos pasos:

1. Abra una terminal o símbolo del sistema en su servidor donde esté instalado MySQL.

2. Escriba el siguiente comando para verificar si MySQL está instalado:

which mysql

Si MySQL está instalado, este comando mostrará la ruta al archivo ejecutable mysql ; de lo contrario, recibirá un mensaje de error.

Si MySQL está instalado, puede usar el comando which nuevamente para encontrar el directorio de instalación. Escriba el siguiente comando, reemplazando /path/to/mysql con la ruta al archivo ejecutable mysql :

 which mysql | xargs readlink -f | sed "s|bin/mysql$||"

Este comando mostrará el directorio de instalación de MySQL. Puede usar este directorio para ubicar el archivo de configuración de MySQL ( my.cnf o my.ini ) y otros archivos y directorios de MySQL.

Alternativamente, si tiene acceso al cliente MySQL, también puede ejecutar la siguiente consulta para encontrar el directorio de instalación de MySQL:

 SELECT @@basedir;

Esto mostrará el directorio de instalación de MySQL.

También puede consultar el archivo de configuración de MySQL para verificar el número de puerto en el que MySQL está configurado para escuchar. El archivo de configuración suele llamarse my.cnf o my.ini y se encuentra en el directorio de instalación de MySQL.

puerto my.cnf y sql

Abra el archivo de configuración con un editor de texto y busque el parámetro del puerto. El valor de este parámetro especifica el número de puerto en el que MySQL está configurado para escuchar.

Si el servidor MySQL no escucha en el puerto correcto, puede cambiar el parámetro del puerto en el archivo de configuración y reiniciar el servidor MySQL para aplicar los cambios.

No olvide reiniciar el servicio Mysql si cambió el puerto:

 service mysql restart

5. Restablecer la contraseña raíz

Si ninguno de los pasos anteriores funciona, puede intentar restablecer la contraseña de root. Puede hacerlo siguiendo los pasos de este artículo:

https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html

Nota: este método requiere que tenga acceso al archivo de configuración de MySQL y la capacidad de reiniciar el servidor MySQL.

Quizás te interese leer:

Cómo corregir el error "Error en la instalación: no se pudo crear el directorio" en WordPress

Cómo arreglar WordPress atascado en modo de mantenimiento (SOLUCIONADO)

Cómo arreglar “Error al actualizar. La respuesta no es una respuesta JSON válida”

¿Cómo solucionar el "Error al establecer una conexión de base de datos"? – 2023