Database Management · 5 min read · Feb 13, 2026
Impostare, Cambiare e Ripristinare le Password di Root di MySQL e MariaDB

Questo tutorial spiega come puoi impostare, cambiare e ripristinare (se hai dimenticato la password) le password di root di MySQL o MariaDB. Ancora e ancora vedo problemi come mysqladmin: connect to server at ‘localhost’ failed error: ‘Access denied for user ‘root’@’localhost’ (using password: YES)’. Quindi ho pensato che fosse il momento di ricordarti come risolvere i problemi di password relativi a MySQL. Se stai cercando solo una soluzione rapida su come ripristinare una password di root di MySQL puoi trovarla in fondo a questo tutorial. Questo tutorial è compatibile con tutte le principali distribuzioni Linux, incluse CentOS, Debian, Fedora e Ubuntu.
Usa il comando mysqladmin per cambiare la password di root
Metodo 1 - Imposta una password di root per la prima volta
Se non hai mai impostato una password di root per MySQL, il server non richiede affatto una password per connettersi come root. Per impostare una password di root per la prima volta, usa il comando mysqladmin al prompt della shell come segue:
mysqladmin -u root password newpassSe vuoi cambiare (o aggiornare) una password di root alla nuova password ‘ newpass ‘, allora devi usare il seguente comando:
mysqladmin -u root -p password newpassInserisci la password:Se ricevi…
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'allora segui le istruzioni qui sotto su come recuperare la tua password MySQL.
La parola ‘ password ‘ nell’esempio sopra è parte del comando, non sostituirla con la tua password. La parola ‘ newpass ‘ è la nuova password.
Un’alternativa all’uso del comando mysqladmin quando si imposta la password di root di MySQL o MariaDB per la prima volta è utilizzare il comando mysql_secure_installation. Questo comando non solo chiederà la vecchia e la nuova password di root di MySQL, ma farà anche alcune altre impostazioni di sicurezza come disabilitare il database di test.
Ecco come utilizzare quel comando:
mysql_secure_installationRispondi alle domande come mostrato di seguito:
Cambiare la password di root? [Y/n] <-- y
Nuova password: <-- Inserisci una nuova password di root di MySQL
Reinserisci la nuova password: <-- Ripeti la password di root di MySQL
Rimuovere utenti anonimi? [Y/n] <-- y
Negare l'accesso remoto a root? [Y/n] <-- y
Rimuovere il database di test e l'accesso ad esso? [Y/n] <-- y
Ricaricare le tabelle dei privilegi ora? [Y/n] <-- y Le risposte sopra sono raccomandazioni, sei libero di scegliere altre impostazioni ad esempio quando preferisci mantenere i database di test o hai bisogno di accesso remoto per l’utente root. Nota: non hai bisogno di accesso remoto per utilizzare PHPMyAdmin da remoto.

Cambiare la password di MySQL per altri utenti
Per cambiare la password di un utente normale devi digitare:
mysqladmin -u user-name -p password newpassLe variabili in questo esempio sono:
- user-name: Il nome utente dell’utente per cui vuoi cambiare la password.
- newpass: La nuova password
La parola ‘password’ non è una variabile, quindi non sostituirla. Il comando chiederà la vecchia password.
Metodo 2 - Aggiorna o cambia password
MySQL memorizza nomi utente e password nella tabella degli utenti all’interno del database MySQL. Puoi aggiornare direttamente una password utilizzando il seguente metodo per aggiornare o cambiare le password:
- Accedi al server MySQL, digita il seguente comando al prompt della shell:
mysql -u root -p- Usa il database mysql (digita i comandi al prompt mysql>):
mysql> use mysql;- Cambia la password per un utente:
MySQL 5.7.5 e versioni precedenti
mysql> update user set password=PASSWORD("newpass") where User='ENTER-USER-NAME-HERE';MySQL 5.7.6 e versioni successive
mysql> SET PASSWORD FOR 'ENTER-USER-NAME-HERE'@'localhost' = PASSWORD("newpass");- Ricarica i privilegi:
mysql> flush privileges;
mysql> quitQuesto metodo devi usarlo mentre utilizzi PHP o Perl scripting.
Recuperare la password di root di MySQL persa
Puoi recuperare una password del server MySQL con i seguenti cinque semplici passaggi:
Passo # 1: Ferma il processo del server MySQL.
Passo # 2: Avvia il server/daemon MySQL (mysqld) con l’opzione –skip-grant-tables in modo che non richieda una password.
Passo # 3: Connettiti al server MySQL come utente root.
Passo # 4: Imposta una nuova password di root.
Passo # 5: Esci e riavvia il server MySQL.
Ecco i comandi che devi digitare per ogni passaggio (accedi come utente root):
Passo # 1: Ferma il servizio MySQL:
service mysql stopOutput:
Fermando il server del database MySQL: mysqld.Passo # 2: Avvia il server MySQL senza password:
mysqld_safe --skip-grant-tables &Output:
[1] 5988
Avviando il demone mysqld con i database da /var/lib/mysql
mysqld_safe[6025]: avviatoPasso # 3: Connettiti al server MySQL utilizzando il client MySQL:
mysql -u rootOutput:
Benvenuto nel monitor MySQL. I comandi terminano con ; o \g.
Il tuo ID di connessione MySQL è 56299
Versione del server: 5.6.34-1 (Debian)Copyright (c) 2000, 2016, Oracle e/o le sue affiliate. Tutti i diritti riservati.Oracle è un marchio registrato di Oracle Corporation e/o delle sue
affiliate. Altri nomi possono essere marchi dei rispettivi
proprietari.Digita 'help;' o '\h' per aiuto. Digita '\c' per cancellare l'attuale dichiarazione di input.
mysql>Passo # 4: Imposta una nuova password per l’utente root di MySQL:
MySQL 5.7.5 e versioni precedenti
mysql> use mysql;
mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quitMySQL 5.7.6 e versioni successive
mysql> use mysql;
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD("newpass");
mysql> flush privileges;
mysql> quit Passo # 5: Ferma il server MySQL:
service mysql stopOutput:
Fermando il server del database MySQL: mysqld
FERMATO il server dal file pid /var/run/mysqld/mysqld.pid
mysqld_safe[6186]: terminato
[1]+ Fatto mysqld_safe --skip-grant-tablesOppure usa questo comando per fermare MySQL se il comando sopra non riesce a fermarlo (quale comando funziona dipende dalla versione di MySQL):
killall mysqldL’output potrebbe differire a seconda della distribuzione Linux. Non preoccuparti a meno che non riporti un errore. Avvia il server MySQL e testalo:
service mysql start
mysql -u root -pRicevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.