Come cambiare la password di MariaDB per utenti root e normali
Hai dimenticato la password di root di MariaDB? Senza di essa, non ti sarà possibile gestire utenti, database o eseguire configurazioni critiche. In questo articolo, imparerai non solo come reimpostare rapidamente la password di root di MariaDB, ma anche come reimpostare la password per gli utenti normali.
Per MySQL consulta la nostra guida separata.
L'utente root è l'amministratore principale del database. Ha pieno accesso a tutti i dati e le impostazioni. Se perdi questa password, non sarai in grado di modificare alcune impostazioni o eseguire comandi.
Tutte le operazioni verranno eseguite tramite la riga di comando via SSH. Puoi trovare istruzioni dettagliate su come connetterti al tuo server tramite SSH in questo articolo.
Prima di procedere, controlla il contenuto del file /root/.my.cnf. Spesso contiene la password di root corrente per accedere a MariaDB.
Per testare la connessione, usa il comando:
mysql -u root -p
Quindi, inserisci la password dal file .my.cnf.
Se la password non funziona, segui le istruzioni qui sotto.
Reimpostazione della password
Nella maggior parte dei comandi sottostanti, verrà utilizzato il comando mysql invece di mariadb per interagire con il server MariaDB. Questo perché, su alcuni sistemi operativi, come le distribuzioni basate su RHEL (RockyLinux, AlmaLinux, ecc.), il comando mariadb non è disponibile. Invece, viene utilizzato il comando mysql per compatibilità con MySQL.
L'uso del comando mysql garantisce una compatibilità universale indipendentemente dalla distribuzione o dall'implementazione del server.
Passaggio 1: Arresta MariaDB
Per reimpostare la password, prima arresta il server MariaDB. Inserisci il seguente comando:
systemctl stop mariadb
Passaggio 2: Riavvia il server in modalità provvisoria
- Per Debian e Ubuntu:
Assicurati che la directory da cui MariaDB verrà eseguito esista e abbia il proprietario corretto:
mkdir -p /var/run/mysqld/ && chown -R mysql: /var/run/mysqld/
Avvia il server MariaDB senza controllo degli accessi:
mysqld_safe --skip-grant-tables --socket=/var/run/mysqld/mysqld.sock &
Se il server MariaDB si avvia correttamente, vedrai un messaggio simile a:
2024-11-28T23:50:19.298141Z mysqld_safe Starting mariadb daemon with databases from /var/lib/mysql
Per continuare a lavorare nella riga di comando, premi "Ctrl + C".
- Per CentOS/RockyLinux/AlmaLinux:
Avvia il server MariaDB senza controllo degli accessi:
mysqld_safe --skip-grant-tables --socket=/var/lib/mysql/mysql.sock &
Per continuare a lavorare nella riga di comando, premi "Ctrl + C".
Passaggio 3: Connettiti a MariaDB
- Per Debian e Ubuntu:
mysql --socket=/var/run/mysqld/mysqld.sock
- Per CentOS/RockyLinux/AlmaLinux:
mysql --socket=/var/lib/mysql/mysql.sock
Passaggio 4: Reimposta la password
Esegui i seguenti comandi in sequenza:
FLUSH PRIVILEGES;
Per un utente locale:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NuovaPassword';
Per un utente di rete (se esiste):
ALTER USER 'root'@'%' IDENTIFIED BY 'NuovaPassword';
Poi:
FLUSH PRIVILEGES;
Sostituisci NuovaPassword con la tua nuova password desiderata.
'user'@'localhost' fa riferimento a un utente locale che si connette tramite socket o localhost.
'user'@'%' fa riferimento a un utente di rete con accesso da qualsiasi indirizzo IP.
Puoi impostare la stessa password o password diverse per questi utenti. Se l'utente di rete non esiste, il comando al @'%' risulterà in un errore.
Esci da MariaDB usando il comando exit o premendo "Ctrl + D".
Passaggio 5: Riavvia MariaDB
Arresta il server MariaDB:
- Per Debian e Ubuntu:
mysqladmin shutdown --socket=/var/run/mysqld/mysqld.sock -p
Quindi, inserisci la password di root precedentemente impostata.
- Per CentOS/RockyLinux/AlmaLinux:
mysqladmin shutdown --socket=/var/lib/mysql/mysql.sock -p
Quindi, inserisci la password di root precedentemente impostata.
Avvia MariaDB in modalità normale:
systemctl start mariadb
Come reimpostare la password per gli utenti normali
Se dimentichi la password per un utente diverso da root, l'approccio è simile:
- Connettiti al server MariaDB come root:
mysql -u root -p
Inserisci la tua password di root di MariaDB.
- Esegui il comando per cambiare la password:
Per un utente locale:
ALTER USER 'username'@'localhost' IDENTIFIED BY 'NuovaPasswordUtente';
Per un utente di rete (se esiste):
ALTER USER 'username'@'%' IDENTIFIED BY 'NuovaPasswordUtente';
Poi:
FLUSH PRIVILEGES;
Sostituisci username con il nome utente effettivo e NuovaPasswordUtente con la tua nuova password desiderata.
Esci da MariaDB usando il comando exit o premendo "Ctrl + D".
Se necessario, puoi elencare tutti gli utenti con la seguente query:
SELECT User, Host FROM mysql.user;
Come connettersi a MariaDB localmente senza inserire una password
Per evitare di inserire manualmente la password ogni volta che ti connetti a MariaDB dalla riga di comando sul tuo server, puoi salvarla nel file /root/.my.cnf. Apri il file in un editor di testo:
nano /root/.my.cnf
Aggiungi le seguenti righe:
[client]
user = root
password = LaTuaPasswordDiRoot
Sostituisci LaTuaPasswordDiRoot con la tua password di root effettiva.
Salva il file premendo Ctrl + O, poi esci dall'editor di testo con Ctrl + X.
Per motivi di sicurezza, imposta permessi più restrittivi sul file .my.cnf:
chmod 600 /root/.my.cnf
Dopo questo, puoi connetterti semplicemente eseguendo il comando:
mysql -u root