Guida Resettare Password MySQL - Risolvere problema MySQL Access denied for user 'root'@'localhost' (using password: YES)

»SAFE

Utente Emerald
10 Febbraio 2013
566
58
206
445
Salve Inforge.
Non so se vi è mai capitato di installare sulla vostra macchina virtuale dei FileServer creati da qualcun altro (compresi i database MySQL), e al momento dello start (o del login MySQL) vi si presenta l'errore `Access denied for user 'root'@'localhost' (using password:YES)`. Questo errore vuol dire che la password dell'account `root` utilizzata è sbagliata, quindi per risolvere questo problema, o trovate la password dell'account `root` o ve la fate dare dal creatore dei FileServer, oppure bisogna resettarla.
Per resettare la password bisogna fare questi passaggi:

1.) Loggare nella vostra macchina virtuale (tramite Putty o VirtualBox), e stoppare il server MySQL:

Codice:
/usr/local/etc/rc.d/mysql-server stop

2.) Effettuare il login in questo modo:
Codice:
mysqld_safe --skip-grant-tables &

Ora la macchina stamperà sulla console delle scritte, una volta che avrà finito (ci metterà 5 o 6 secondi dopo aver digitato il comando) non visualizzerà il solito '[email protected]: ~# ' voi comunque digitate:
Codice:
mysql -u root

3.) Adesso se avete fatto tutto correttamente dovreste essere loggati nel MySQL. Da qui ora resettiamo la password dell'utente root. Prima di tutto dobbiamo usare il database 'mysql', quindi digitiamo:
Codice:
USE mysql;

4.) Adesso possiamo finalmente resettare la password. Quindi digitiamo:
Codice:
UPDATE user SET password=PASSWORD('NuovaPassword') WHERE user='root';

Ovviamente al posto di NuovaPassword dovete mettere la password che volete assegnare all'utente root.

5.) Ora per assicurarci che le modifiche appena effettuate siano salvate digitiamo:
Codice:
FLUSH PRIVILEGES;

Il comando 'FLUSH PRIVILEGES' è molto importante perchè quando si modificano le tabelle principali se non si da questo comando le modifiche non vengono salvate finchè non si riavvia il server. Dopodichè possiamo uscire dal MySQL digitando:
Codice:
quit;


Adesso per vedere se abbiamo modificato correttamente la password, proviamo ad effettuare il login.
Codice:
mysql -u root -p
Enter Password:  NuovaPassword


In teoria dovrebbe funzionare per tutti in questo modo.



P.S.: Non so se esiste già una guida simile, ma comunque non fa male a nessuno se ce ne sono due.
 
  • Mi piace
Reazioni: DidyMond

Ikarus_

Utente Emerald
8 Settembre 2012
1,047
23
564
443
Salve Inforge.
Non so se vi è mai capitato di installare sulla vostra macchina virtuale dei FileServer creati da qualcun altro (compresi i database MySQL), e al momento dello start (o del login MySQL) vi si presenta l'errore `Access denied for user 'root'@'localhost' (using password:YES)`. Questo errore vuol dire che la password dell'account `root` utilizzata è sbagliata, quindi per risolvere questo problema, o trovate la password dell'account `root` o ve la fate dare dal creatore dei FileServer, oppure bisogna resettarla.
Per resettare la password bisogna fare questi passaggi:

1.) Loggare nella vostra macchina virtuale (tramite Putty o VirtualBox), e stoppare il server MySQL:

Codice:
/usr/local/etc/rc.d/mysql-server stop

2.) Effettuare il login in questo modo:
Codice:
mysqld_safe --skip-grant-tables &

Ora la macchina stamperà sulla console delle scritte, una volta che avrà finito (ci metterà 5 o 6 secondi dopo aver digitato il comando) non visualizzerà il solito '[email protected]: ~# ' voi comunque digitate:
Codice:
mysql -u root

3.) Adesso se avete fatto tutto correttamente dovreste essere loggati nel MySQL. Da qui ora resettiamo la password dell'utente root. Prima di tutto dobbiamo usare il database 'mysql', quindi digitiamo:
Codice:
USE mysql;

4.) Adesso possiamo finalmente resettare la password. Quindi digitiamo:
Codice:
UPDATE user SET password=PASSWORD('NuovaPassword') WHERE user='root';

Ovviamente al posto di NuovaPassword dovete mettere la password che volete assegnare all'utente root.

5.) Ora per assicurarci che le modifiche appena effettuate siano salvate digitiamo:
Codice:
FLUSH PRIVILEGES;

Il comando 'FLUSH PRIVILEGES' è molto importante perchè quando si modificano le tabelle principali se non si da questo comando le modifiche non vengono salvate finchè non si riavvia il server. Dopodichè possiamo uscire dal MySQL digitando:
Codice:
quit;


Adesso per vedere se abbiamo modificato correttamente la password, proviamo ad effettuare il login.
Codice:
mysql -u root -p
Enter Password: NuovaPassword


In teoria dovrebbe funzionare per tutti in questo modo.



P.S.: Non so se esiste già una guida simile, ma comunque non fa male a nessuno se ce ne sono due.
Nelle nuove versioni di mysql PASSWORD() è deprecato e rimosso. Ma ci sono altri modi di cambiare password , basta cercare online tra le docs di mysql

Inviato dal mio LG-H870 utilizzando Tapatalk
 

»SAFE

Utente Emerald
10 Febbraio 2013
566
58
206
445
Nelle nuove versioni basta scrivere la password così com'è. In questo modo:
Codice:
UPDATE user SET password='NuovaPassword' WHERE user='root';