sql >> Base de Datos >  >> RDS >> Mysql

acceso denegado para usuario root @ localhost

Deje que las siguientes 2 líneas fallen si el usuario existe y blahblah no importa por ahora:

create user 'root'@'localhost' identified by 'blahblah';
create user 'root'@'127.0.0.1' identified by 'blahblah';

Haz tus subvenciones:

grant all on *.* to 'root'@'localhost';
grant all on *.* to 'root'@'127.0.0.1';

Cambia la contraseña a algo que recordarás:

set password for 'root'@'localhost' = password('NewPassword');
set password for 'root'@'127.0.0.1' = password('NewPassword');

Vea cuántos usuarios root tiene. Un usuario real es una combinación de usuario/anfitrión. La contraseña aparecerá codificada:

select user,host,password from mysql.user where user='root';

o

select user,host,authentication_string from mysql.user where user='root';

El segundo de arriba es para MySQL 5.7

Si obtiene más de los dos usuarios anteriores, elimine a los demás como:

drop user 'root'@'%';   -- this is the wildcard hostname, can be a security risk
drop user 'root'@'::1';

Aún tienes solo 2? Eso espero. Utilice las instrucciones de selección anteriores para comprobarlo.

No conecte una aplicación de usuario usando la raíz. root es solo para mantenimiento. No importa si es un código del lado del servidor o si un administrador lo está ejecutando. El código que no está protegido y/o inyectado con declaraciones dañinas se ejecuta como root. Entonces ahí, es por eso.