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 di MySQL installato sul suo server. Accedendo alla console come root, infatti, riceveva questo messaggio:

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

Il problema รจ che, per cambiare la password di amministrazione di MySQL, รจ necessario prima accedere come amministratore!

In realtร , questโ€™ultima affermazione รจ vera solo in parte, poichรฉ avendo accesso alla root del server, abbiamo comunque il controllo su MySQL e quindi possiamo seguire strade alternative per recuperare lโ€™accesso.

In questo articolo vedremo, appunto, come reimpostare la password di root di MySQL che ci siamo dimenticati; requisito essenziale รจ avere 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, dobbiamo lanciare il seguente comando da terminale:

/etc/init.d/mysqld stop

Fatto questo, dobbiamo riavviare, sempre da Shell, il processo precedentemente bloccato, utilizzando la direttiva --skip-grant-tables. Essa permetterร  di accedere allโ€™applicazione senza che il sistema richieda 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 a MySQL con:

mysql -u root

Bene, siamo dentro! Ora possiamo reimpostare 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 di MySQL:

/etc/init.d/mysqld restart

Una volta riavviato, proviamo ad accedere con le nuove credenzialiโ€ฆ se tutto รจ andato per il meglio, dovrebbe funzionare!

Considerazioni Finali

Ricordiamo che la gestione delle password, soprattutto per lโ€™account root di MySQL, รจ fondamentale per garantire la sicurezza del nostro server. รˆ buona pratica utilizzare password complesse e, se possibile, considerare lโ€™implementazione di procedure di backup delle credenziali. Inoltre, mantenere aggiornato il sistema e MySQL non solo aumenta la sicurezza, ma previene anche problemi futuri che potrebbero rendere difficoltosa la gestione degli accessi.

Altri contenuti interessanti

Pubblicitร 

Potrebbero interessarti queste guide

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ร