martedì 10 maggio 2016

Password persa mysql: come recuperarla

Hai perso la password di root di mysql ed ora non sai più come fare?
Password mysql persa? Nessun problema, è possibile resettare la password di mysql in modo da poter continuare ad usare il proprio database sql senza dover perdere per forza tutti i dati.
In questo post ti spiegherò come recuperare la di root password persa per un'installazione tipica di mysql, o come recuperare la password persa in un'installazione tramite easyphp.


Come recuperare la password di mysql


Se usi phpmyadmin e hai perso la password di accesso ed ora sei tagliato fuori dal database del tuo sito internet (che sia wordpress, joomla, php puro, ecc...), c'è un modo abbastanza semplice per resettare la password di root di mysql.

Ecco pochi semplici passaggi da seguire (per windows e linux):
  1. Prima di tutto, se attivo, stoppa il servizio di mysql.
    Puoi farlo tramite prompt dei comandi, entrando nella cartella dove è presente l'eseguibile e digitando il comando: mysqld stop (su linux dovrebbe essere: /etc/rc.d/mysqld stop), oppure su windows bloccandolo dai processi o dai servizi
  2. Ora che il servizio mysql è stoppato, apri una finestra di dos e digita il seguente comando per rilanciarlo nella modalità che ci consentirà di aggiornare la password di root:
    mysqld --skip-grant-tables &
  3. Avvia la console di mysql come root posizionandoti nel giusto db con questo comando:
    mysql -u root mysql
    Se usi windows ti servirà aprire un altro prompt di dos per eseguire questo comando
  4. Reimposta la password di mysql con questo comando:
    UPDATE user SET password=PASSWORD("TUA-NUOVA-PASSWORD-DI-ROOT") WHERE User='root';
    Dove ovviamente al posto di TUA-NUOVA-PASSWORD-DI-ROOT... chettelodicoaffare (cit.)
    Attenzione: se da mysql 5.7 in su, il campo password è stato rinominato in authentication_string, quindi la nuova sintassi è:
    UPDATE user SET authentication_string=PASSWORD("TUA-NUOVA-PASSWORD-DI-ROOT") WHERE User='root';
  5. Aggiorna i privilegi dei database con il comando FLUSH PRIVILEGES;
    Ed infine digita exit; per uscire dalla console mysql.
  6. Riavvia mysql con il comando mysqld restart (su linux: /etc/rc.d/mysqld restart) o tramite interfaccia grafica sotto windows

Così facendondo hai reimpostato la password di root di mysql e puoi dunque tornare ad accedere al tuo database dal quale eri rimasto tagliato fuori :p
Se invece ha installato mysql per windows tramite easyphp, leggi qui sotto...


Come recuperare la password mysql con easyphp per windows


La procedura per reimpostare la password di mysql con easyphp è identica a quella di sopra, quindi non la riscriverò completamente.
Quello che cambia è che il processo di mysql non si chiama mysqld ma eds-dbserver.exe.

Quindi, stoppare il processo eds-dbserver.exe dai processi attivi (punto 1 della procedura spiegata sopra).

Come recuperare password mysql

Poi (punto 2), apri una finestra di dos e digita il comando:
eds-dbserver.exe --skip-grant-tables

Segui i punti 3, 4 e 5 scritti sopra.
Con l'unica differenza che cambierà il percorso dei binari di mysql
Nel mio caso il percorso dei binari di mysql è:
cd C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-binaries\dbserver\mysql5710x160301111830\bin

Infine riavvia il servizio di mysql.
Se tramite interfaccia web di easyphp non te lo lascia fare, stronca il processo dai processi attivi di windows, o prova ad uscire dalla finestra dos dove avevi lanciato il servizio eds-dbserver.exe.

Va da se che a seconda delle versioni di easyphp potrebbero cambiare sia il percorso dei binari di mysql, sia il nome del processo. Ma con un minimo di ingegno sono sicuro che saprai trovare il giusto percorso e l'eventuale nuovo nome :)


PS
se usi phpmyadmin settato in maniera che si autentichi senza password (come di default è per easyphp), dopo aver cambiato la password potresti non poter più riuscire ad accedere, ricevendo il seguente messaggio:
"Messaggio di MySQL: Documentazione
#1045 - Access denied for user 'root'@'localhost' (using password: NO)
hpMyAdmin ha provato a connettersi al server MySQL, e il server ha rifiutato la connessione. Si dovrebbe controllare il nome dell'host, l'username e la password nel file di configurazione ed assicurarsi che corrispondano alle informazioni fornite dall'amministratore del server MySQL.
"

Quello che devi fare è dunque andare a modificare il file di configurazione di phpmyadmin, che dovrebbe chiamarsi config.inc.php.
Che potrai trovare ad esempio in un percorso di questo tipo:
C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-modules\phpmyadmin4531x160301111830

Cerca le seguenti righe:
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';

E modificale di conseguenza :)

Piaciuto l'articolo? Lascia un commento!

EmoticonEmoticon