Veloce, funzionale, semplice da utilizzare, diffusissimo, capace di tollerare carichi di lavoro enormi, e per giunta completamente gratuito: chiunque lavori in ambiente Linux o sia un Web Developer o anche un Web Designer di sicuro ama e conosce i database MySQL e MariaDB.
Nato come fork di MySQL dopo l’acquisizione di quest’ultimo da parte della Sun Microsystem, MariaDB ha preso una strada leggermente diversa dal suo “genitore”, ma oggi i due sistemi sono i più diffusi database relazioni al mondo e costituiscono un abbinamento davvero vincente con PHP. Ma delle loro differenze e di altre importanti caratteristiche parleremo in successivi articoli.
In questo articolo vogliamo mostrarvi cosa fare se, malauguratamente, dovreste smarrire la password di root del database engine in uso, con la conseguente impossibilità di creare e rimuovere utenti e database dall’installazione sul vostro server.
Nonostante una evenienza del genere possa sembra un incubo per un SysAdmin, per fortuna la soluzione a questo problema è abbastanza facile: ovviamente tale soluzione presuppone che abbiate pieno accesso con privilegi di utente root (di Linux), tramite SSH, al server in cui si trova l’installazione di cui avete smarrito la password.
Sia per MySQL che per MariaDB i comandi da lanciare da terminale sono identici:
Dal terminale del nostro server Linux, accediamo con privilegi di root e per prima cosa dobbiamo stoppare il database lanciamo il seguente comando:
sudo service mysql stop
oppure
sudo service mariadb stop
questi due comandi si utilizzano su Ubuntu, Debian e derivate. Se invece sul vostro server è installata una distro che usa come Packet Manager RPM, quindi CentOS o RedHat, lanciate i seguenti comandi per stoppare il database:
sudo systemctl stop mysql
oppure
sudo systemctl stop mariadb
Adesso dobbiamo avviare nuovamente il database, ma in safe mode. Per farlo lanciamo il seguente comando (indipendente dalla distribuzione e dal tipo di database in uso, come tutti i comandi che seguono):
mysqld_safe --skip-grant-tables &
in questo modo potremo accedere alla nostra installazione di MySQL o MariaDB senza la necessità di dover digitare la password di root lanciando il seguente comando:
mysql -u root mysql
a questo punto per resettare la password di root impostandone una nuova dobbiamo lanciare il seguente comando:
UPDATE user SET password=PASSWORD("nuova-password") WHERE user='root';
sostituiamo “nuova-password” con la nuova password che abbiamo scelto e assicuriamoci di memorizzarla in un posto sicuro!
Ricarichiamo le tabelle del nostro database:
FLUSH PRIVILEGES;
e a questo punto è fatta. Non ci resta che uscire dall’amministrazione del nostro database:
quit;
Adesso fermiamo il servizio, dato che ci troviamo in safe mode:
mysqladmin -u root -p shutdown
Bene: abbiamo finito! Possiamo riavviare il servizio in modalità normale con il seguente comando:
Su Debian, Ubuntu e derivate usiamo uno dei due comandi, a seconda del nostro database engine:
sudo service mysql start
oppure
sudo service mariadb start
su CentOS o RedHat usiamo uno dei seguenti comandi:
sudo systemctl start mysql
oppure
sudo systemctl start mariadb
Ovviamente la nostra installazione a questo punto ci chiederà la password: basterà inserire quella che abbiamo scelto nell’apposito comando precedente.
Perfetto! Abbiamo finito. Come avete visto non è per niente difficile resettare la password di root della nostra installazione MySQL e MariaDB. Il nostro consiglio ovviamente è porre la massima attenzione a non dimenticare tale password e a conservarla in un luogo sicuro.