Mysql
 sql >> Database >  >> RDS >> Mysql

accesso negato per utente root @ localhost

Lascia che le seguenti 2 righe falliscano se l'utente esiste e blahblah non importa per ora:

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

Fai le tue sovvenzioni:

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

Cambia la password con qualcosa che ricorderai:

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

Guarda quanti utenti root hai. Un utente reale è una combinazione utente/host. La password verrà visualizzata con hash:

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

o

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

Il secondo sopra è per MySQL 5.7

Se ottieni più dei due utenti sopra, elimina gli altri come:

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

Ne hai ancora solo 2? Lo spero. Usa gli stmts selezionati sopra per controllare.

Non connettere un'app utente tramite root. root è solo per la manutenzione. Non importa se si tratta di codice lato server o se un amministratore lo esegue. Il codice che non è protetto e/o iniettato con istruzioni dannose viene eseguito come root. Ecco, ecco perché.