MySQL Reference Manual contiene i passaggi dettagliati su come reimpostare la password per root che sono i seguenti:
La procedura in Windows:
- Accedi al sistema Windows su cui MySQL è in esecuzione come amministratore.
- Arresta il server MySQL se è in esecuzione. Per un server in esecuzione come servizio Windows, vai a Gestione servizi:
Menu Start -> Pannello di controllo -> Strumenti di amministrazione -> Servizi
Quindi trova il servizio MySQL nell'elenco e interrompilo.
Se il tuo server non è in esecuzione come servizio, potresti dover utilizzare Task Manager per forzarne l'arresto.
- Crea un file di testo e inserisci i seguenti comandi ciascuno su una singola riga:
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root'; FLUSH PRIVILEGES;
Save the file with any name. For this example the file will be C:\mysql-init.txt.SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
- Open a console window to get to the DOS command prompt: Start Menu -> Run -> cmd
- If MySQL is installed in C:\mysql. If MySQL is installed in another location, adjust the following commands accordingly.
At the DOS command prompt, execute this command:
C:\> C:\mysql\bin\mysqld-nt --init-file=C:\mysql-init.txt
Il contenuto del file denominato dall'opzione --init-file viene eseguito all'avvio del server, modificando la password di root. Dopo che il server è stato avviato correttamente, dovresti eliminare C:\mysql-init.txt.
Se hai installato MySQL utilizzando l'Installazione guidata MySQL, potresti dover specificare un'opzione --defaults-file:
C:\> "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe" --defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini" --init-file=C:\mysql-init.txt
L'impostazione --defaults-file appropriata può essere trovata utilizzando Gestione servizi:
Menu Start -> Pannello di controllo -> Strumenti di amministrazione -> Servizi
Trova il servizio MySQL nell'elenco, fai clic con il pulsante destro del mouse su di esso e scegli l'opzione Proprietà. Il campo Percorso dell'eseguibile contiene l'impostazione --defaults-file. Assicurati di fornire l'argomento --init-file con il percorso di sistema completo del file, indipendentemente dalla tua directory di lavoro corrente
- Arresta il server MySQL, quindi riavvialo nuovamente in modalità normale. Se il server MySQL viene eseguito come servizio, avviarlo dalla finestra Servizi di Windows. Se avvii il server manualmente, usa il comando che usi normalmente.
- Connettiti al server MySQL utilizzando la nuova password. Ricorda anche di eliminare il file mysql-init.txt una volta terminato.
Per ambiente Unix e Linux, la procedura per reimpostare la password di root è la seguente:
- Accedi al sistema Unix come utente root Unix o come lo stesso utente su cui viene eseguito il server mysqld.
- Individuare il file .pid che contiene l'ID processo del server. La posizione e il nome esatti di questo file dipendono dalla distribuzione, dal nome host e dalla configurazione. Le posizioni comuni sono /var/lib/mysql/, /var/run/mysqld/ e /usr/local/mysql/data/. In genere, il nome del file ha l'estensione .pid e inizia con mysqld o con il nome host del sistema.
Arrestare il server MySQL inviando un kill normale (non kill -9) al processo mysqld, utilizzando il percorso del file .pid nel comando seguente:
shell> kill `cat /mysql-data-directory/host_name.pid`
Nota l'uso di backtick piuttosto che di virgolette in avanti con il comando cat; questi fanno sì che l'output di cat venga sostituito nel comando kill.
- Crea un file di testo e inserisci il seguente comando al suo interno su una singola riga:
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root'; FLUSH PRIVILEGES;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
Salva il file con qualsiasi nome. Per questo esempio il file sarà ~/mysql-init.
- Riavvia il server MySQL con l'opzione --init-file=~/mysql-init speciale:
shell> mysqld_safe --init-file=~/mysql-init &
Il contenuto del file init viene eseguito all'avvio del server, modificando la password di root. Dopo che il server è stato avviato correttamente, dovresti eliminare ~/mysql-init.
- Riavvia il server normalmente. Connettiti al server MySQL utilizzando la nuova password.
In alternativa, su qualsiasi piattaforma, il client mysql può essere utilizzato per impostare la nuova password, sebbene sia un modo meno sicuro per reimpostare la password (istruzioni dettagliate qui):
- Arresta mysqld e riavvialo con le opzioni --skip-grant-tables --user=root (gli utenti Windows omettono la parte --user=root).
- Connettiti al server mysqld con questo comando:
shell> mysql -u root
- Emettere le seguenti istruzioni nel client mysql:
mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd') -> WHERE User='root'; mysql> FLUSH PRIVILEGES;
Sostituisci 'newpwd' con la password di root effettiva che desideri utilizzare.
- Dovresti essere in grado di connetterti utilizzando la nuova password.