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 newpass

Se vuoi cambiare (o aggiornare) una password di root alla nuova password ‘ newpass ‘, allora devi usare il seguente comando:

mysqladmin -u root -p password newpass
Inserisci 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_installation

Rispondi 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.

Usa mysql_secure_installation per cambiare la password di root di MySQL

Cambiare la password di MySQL per altri utenti

Per cambiare la password di un utente normale devi digitare:

mysqladmin -u user-name -p password newpass

Le 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:

  1. Accedi al server MySQL, digita il seguente comando al prompt della shell:
mysql -u root -p
  1. Usa il database mysql (digita i comandi al prompt mysql>):
mysql> use mysql;
  1. 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");
  1. Ricarica i privilegi:
mysql> flush privileges;  
mysql> quit

Questo 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 stop

Output:

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]: avviato

Passo # 3: Connettiti al server MySQL utilizzando il client MySQL:

mysql -u root

Output:

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> quit

MySQL 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 stop

Output:

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-tables

Oppure usa questo comando per fermare MySQL se il comando sopra non riesce a fermarlo (quale comando funziona dipende dalla versione di MySQL):

killall mysqld

L’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 -p
Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.