Introduzione

In questo tutorial ti mostreremo come reimpostare ( o cambiare) una password di root di MySQL nel caso in cui l'hai dimenticata. Questa guida dovrebbe funzionare con qualsiasi distribuzione Linux moderna come Ubuntu 18.04 e CentOS 8.

Prerequisiti

Prima di continuare con i passaggi seguenti, assicurarsi di aver effettuato l'accesso al server come utente con privilegi sudo.

Se volete procedere su un server in remoto continuate a leggere, altrimenti se lavorate sul vostro computer locale saltate il primo paragrafo "Connessione al Server" e leggere il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:

ssh [email protected]_DEL_SERVER

Successivamente sarà necessario inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:

ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:

ssh [email protected]_DEL_SERVER -p PORTA

Identificare la versione del server

A seconda della versione del server MySQL o MariaDB in esecuzione sul sistema, sarà necessario utilizzare diversi comandi per recuperare la password di root.

Puoi trovare la versione del tuo server emettendo il seguente comando:

mysql --version

Se hai installato MySQL nel tuo sistema, l'output sarà simile al seguente:

mysql  Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using  EditLine wrapper

O output come questo per MariaDB:

mysql  Ver 15.1 Distrib 10.1.33-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Assicurati di annotare quale versione di MySQL o MariaDB stai utilizzando.

Reimpostare la password root di MySQL o MariaDB

Seguire questi passaggi per ripristinare la password di root di MySQL/MariaDB:

Per cambiare la password di root, prima dobbiamo fermare il server MySQL. Per fare ciò digitare il seguente comando:

sudo systemctl stop mysql

Avviare il server MySQL/MariaDB senza caricare le tabelle. Quando l'opzione --skip-grant-tables è abilitata, chiunque può connettersi al server di database senza password e con tutti i privilegi.

Per avviare il server database senza caricare le tabelle delle autorizzazioni:

sudo mysqld_safe --skip-grant-tables &

La e commerciale & alla fine del comando sopra farà funzionare il programma in background, così possiamo continuare a usare la shell.

Ora puoi connetterti al server di database come utente root, senza che ti venga richiesta la password:

mysql -u root

Impostare una nuova password di root

Esegui i seguenti comandi se hai MySQL 5.7.6 e versioni successive o MariaDB 10.1.20 e versioni successive:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MY_NEW_PASSWORD';
FLUSH PRIVILEGES;

Se l'istruzione ALTER USER non funziona per te, prova a modificare direttamente la tabella utente:

UPDATE mysql.user SET authentication_string = PASSWORD('MY_NEW_PASSWORD')
WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;

Esegui i seguenti comandi se hai MySQL 5.7.5 e precedenti o MariaDB 10.1.20 e precedenti:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MY_NEW_PASSWORD');
FLUSH PRIVILEGES;

In entrambi i casi, se tutto va bene, dovresti vedere il seguente output:

Query OK, 0 rows affected (0.00 sec)

Arrestare e avviare normalmente il server database

Ora che la password di root è impostata, dovremo arrestare il server di database e avviarlo normalmente.

Arrestare il server database utilizzando il comando seguente:

mysqladmin -u root -p shutdown

Ti verrà richiesto di inserire la nuova password di root:

Avviare normalmente il server database:

Per MySQL, digitare:

sudo systemctl start mysql

Per MariaDB, digitare:

sudo systemctl start mariadb

Verifica la password

Per verificare che la nuova password di root sia stata applicata correttamente digitare:

sudo mysql -u root -p

Ti verrà richiesto di inserire la nuova password di root. Inseriscilo e dovresti aver effettuato l'accesso al tuo server di database.

Conclusione

In questo tutorial, hai imparato a ripristinare la password di root di MySQL o MariaDB. Assicurati che la tua nuova password di root sia sicura e protetta e conservala in un luogo sicuro.