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

Impossibile accedere all'utente root di MySql, anche dopo aver impostato la password tramite la modalità provvisoria nel terminale Linux

Procedi come prima nel passaggio 2, ovvero riavvia il demone mysql in modalità provvisoria.

Dai il comando

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

taglia e incolla l'output in un editor di testo per il confronto (dei valori della colonna della password con hash) prima e dopo quanto segue.

Per ogni riga notare l'host colonna. Nell'esempio seguente presumo di avere due righe. Una riga contiene % come host, il successivo ha localhost

Per ogni riga che aveva un host variazione, emetterai un comando. Quindi nel mio esempio sopra, emetterei 2 comandi in totale, come:

SET PASSWORD FOR 'root'@'%' = PASSWORD('MyNewPassword');
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');

corri

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

taglialo e incollalo nell'editor di testo. Nota la modifica degli hash della password.

Spegni il demone dalla modalità provvisoria e riavvia normalmente.

Prova ad accedere come root con MyNewPassword

Ecco alcuni link. Quello per Sintassi SET PASSWORD e spesso un passaggio successivo per Sintassi GRANT .

Per lo scopo ristretto di questa domanda, ovvero per il login, le sovvenzioni non sarebbero necessarie. Ma senza adeguate sovvenzioni ai database, uno sarebbe in modalità sandbox, non in grado di fare molto, a parte semplici comandi come select now();

Non sto suggerendo che il tuo utente root non disponga dei privilegi una volta modificata la password. Le sovvenzioni sono necessarie per essere sicuri degli utenti normali.