Razones y soluciones para el acceso denegado al usuario 'root'@'xxx.xxx.xxx.xxx' (usando contraseña: SÍ) al iniciar sesión en MySQL

Escenario 1: aparece al depurar un programa web para acceder a una base de datos

Escenario 2: al iniciar sesión en MySQL, distinga entre inicio de sesión local en el host local e inicio de sesión remoto. Incluso si puede iniciar sesión localmente, no puede iniciar sesión de forma remota sin autorización

Razones para el análisis: (distinguir) Cuando tal situación ocurre localmente, la contraseña es incorrecta, busque la contraseña correcta o cámbiela; al iniciar sesión de forma remota, primero determine si la contraseña de inicio de sesión es correcta y, en segundo lugar, determine si está autorizada de forma remota. . En vista de las dos situaciones anteriores, se dan soluciones.

Caso 1 Solución: Modificar la contraseña de la base de datos local

Método 1: utilice el comando SET PASSWORD
para iniciar sesión en MySQL primero.
Formato: mysql> establecer contraseña para nombre de usuario@localhost = contraseña('nueva contraseña');
Ejemplo: mysql> establecer contraseña para root@localhost = contraseña('123');

Método 2: Utilice
el formato mysqladmin: mysqladmin -u nombre de usuario -p contraseña anterior contraseña nueva contraseña
Ejemplo: mysqladmin -uroot -p123456 contraseña 123

Método 3: Edite la tabla de usuarios directamente con UPDATE
Primero inicie sesión en MySQL.
mysql> usar mysql;
mysql> actualizar conjunto de usuario contraseña=contraseña('123') donde usuario='root' y host='localhost';
mysql> privilegios de vaciado;

Método 4: cuando olvide la contraseña de root, puede hacer esto.
Tome Windows como ejemplo:

  1. Cierre el servicio MySQL en ejecución.
  2. Abra una ventana de DOS y vaya al directorio mysql\bin.
  3. Ingrese mysqld --skip-grant-tables y presione Enter. --skip-grant-tables significa omitir la autenticación de la tabla de permisos al iniciar el servicio MySQL.
  4. Abra otra ventana de DOS (porque la ventana de DOS de ahora ya no se puede mover) y vaya al directorio mysql\bin.
  5. Ingrese mysql y presione Enter. Si tiene éxito, aparecerá el mensaje MySQL >.
  6. Conectar la base de datos de permisos: use mysql; .
  7. Cambie la contraseña: actualice el conjunto de usuario contraseña=contraseña("123") donde usuario="root"; (no olvide agregar un punto y coma al final).
  8. Actualizar privilegios (paso obligatorio): vaciar privilegios; 
  9. Abandonar.
  10. Cierre sesión en el sistema, ingrese nuevamente e inicie sesión con el nombre de usuario root y la nueva contraseña 123 que acaba de configurar.

 

Solución del caso 2: autorización remota

1. Primero inicie sesión con localhost (ingrese MySQL) mysql -u root -p

Ingrese la contraseña: (ingrese la contraseña)
2. Ejecute el comando de autorización
mysql> conceda todos los privilegios en  .  a root@'%' identificado por '123'; (tenga en cuenta el ";" después de la declaración)
Consulta correcta, 0 filas afectadas (0.07 seg)
3. Salga y vuelva a intentarlo: mysql> quit
4. Intente iniciar sesión nuevamente: mysql -u root -h 192.168.194.142 -p
Ingrese la contraseña:
El resultado muestra: Bienvenido al monitor MySQL. Los comandos terminan en ; o \ g.
Su ID de conexión MySQL es 3
significa éxito

Hablemos en detalle sobre cómo autorizar usuarios.

mysql> otorga autoridad 1, autoridad 2, ... autoridad n en el nombre de la base de datos, nombre de la tabla al nombre de usuario@dirección de usuario identificada por 'contraseña de conexión';

Permiso 1, permiso 2, ... permiso n representa seleccionar, insertar, actualizar, eliminar, crear, eliminar, indexar, alterar, otorgar, referencias, recargar, apagar, procesar, archivar y otros 14 permisos.
Cuando la autoridad 1, la autoridad 2, ... la autoridad n se reemplaza por todos los privilegios o todos, significa otorgar todos los derechos al usuario.
Cuando el nombre de la base de datos.nombre de la tabla se  reemplaza por .  , significa que el usuario tiene la autoridad para operar todas las tablas en todas las bases de datos del servidor.
La dirección de usuario puede ser localhost o dirección IP, nombre de máquina y nombre de dominio. También puedes utilizar '%' para conectarte desde cualquier dirección.
La 'Contraseña de conexión' no puede estar vacía; de lo contrario, la creación fallará.

Para dar algunos ejemplos:
mysql> otorgar selección, insertar, actualizar, eliminar, crear, colocar en vtdc.employee a [email protected] identificado por '123';
asignar al usuario joe de 10.163.225.87 al empleado que puede acceder a la base de datos vtdc Enumere los permisos para operaciones como seleccionar, insertar, actualizar, eliminar, crear, soltar, etc., y establezca la contraseña en 123.

mysql> otorga todos los privilegios en vtdc.* a [email protected] identificado por '123';
asigna al usuario joe de 10.163.225.87 la autoridad para realizar todas las operaciones en todas las tablas de la base de datos vtdc y establece la contraseña en 123.

mysql> otorga todos los privilegios en  .  a [email protected] identificado por '123';
asigna al usuario joe de 10.163.225.87 la autoridad para realizar todas las operaciones en todas las tablas de todas las bases de datos y establece la contraseña en 123.

mysql> otorga todos los privilegios en  .  a joe@localhost identificado por '123';
asigna al usuario local joe la autoridad para realizar todas las operaciones en todas las tablas de todas las bases de datos y establece la contraseña en 123. Caso: autorización remota

Supongo que te gusta

Origin blog.csdn.net/zlfjavahome/article/details/131988309
Recomendado
Clasificación