back to top

Cambiare la password dell’utente root di MySQL

Dimenticare le password non è cosa così infrequente, anzi. Spesso è possibile ovviare a questa dimenticanza in modo molto semplice (si pensi ad esempio agli strumenti di "recupero password" comuni in molte web-application), altre volte la cosa è piuttosto complicata.

Recentemente mi è capitato di dover aiutare un cliente distratto che si era dimenticato la password di root per la gestione del MySQL installato sul suo server. Accedendo alla console come root, infatti, riceveva questo messaggio:

Access denied for user 'root'@'localhost' (using password: NO)

Il problema è che per cambiare la password di amministrazione di MySQL… bisogna prima accedere come amministratore!

In realtà quest’ultima affermazione è vera solo in parte in quanto, avendo accesso alla root del server, avremo comunque il controllo del MySQL e quindi abbiamo la possibilità di seguire strade alternative.

In questo articolo vedremo, appunto, come re-impostare la password di root del MySQL che ci siamo dimenticati; requisito essenziale e che si abbia accesso al server con privilegi di amministrazione.

Accediamo quindi alla shell del nostro server. Una volta effettuato l’accesso stoppiamo il processo mysql, per far questo si dovrà lanciare il seguente comando da terminale:

/etc/init.d/mysqld stop

Fatto questo si dovrà riavviare, sempre da Shell, il processo precedentemente bloccato utilizzando la direttiva --skip-grant-tables essa permetterà di accedere all’applicazione senza che il sistema provveda a richiedere una password per l’autenticazione:

mysqld_safe --skip-grant-tables &

se stiamo operando in locale sul server (cioè solo se abbiamo un accesso diretto e fisico con la macchina) è bene anche bloccare l’accesso remoto:

mysqld_safe --skip-grant-tables --skip-networking &

Una volta avviato il servizio in questa modalità possiamo accedere al MySQL con:

mysql -u root

Bene, siamo dentro! Ora possiamo re-impostare la nostra password di root:

USE mysql;
UPDATE user SET password=PASSWORD("nuova_pass") WHERE User='root';
FLUSH PRIVILEGES;
exit;

Molto importante dopo aver settato la nuova password effettuare un FLUSH dei privilegi!

Ora non resta che riavviare il demone del MySQL:

/etc/init.d/mysqld restart

Una volta riavviato proviamo ad accedere con le nuove credenziali… se tutto è andato per il meglio dovrebbe funzionare!

Pubblicitร 
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).

Leggi anche...

Come ottenere l’ID dell’ultimo record inserito in MySQL, PostgreSQL, SQL Server e Oracle?

Ottenere l'ID dell'ultimo record inserito in una tabella, dopo...

Database completo regioni, province e comuni italiani (in formato SQL)

Quando si sviluppa un sito web o un'applicazione in...

File CSV: cosa sono, come si aprono e come crearli

In questo articolo cercheremo di capire cos'รจ il formato...

Confrontare due tabelle e trovare i record senza corrispondenza

all'interno di un database relazionale può essere utile poter...

Eseguire comandi SQL online con SQL Fiddle

Sì. E' possibile testare codice SQL senza aver installato...

SQL: Calcolare la media dei valori di più campi

Attraverso una semplice query SQL è possibile calcolare dinamicamente...
Pubblicitร