Ai uitat parola utilizatorului root (sau a altui utilizator principal) de la baza de date și site-urile tale au picat? Nu intra în panică! Atâta timp cât ai acces la server prin SSH cu drepturi de sudo, poți reseta parola în doar câteva minute, fără să pierzi niciun rând de date.
Această metodă folosește sistemul de service modern systemd din Ubuntu 24.04, fiind cea mai curată și sigură variantă.
Pasul 1: Oprirea bazei de date
Primul lucru pe care trebuie să-l facem este să oprim complet serverul MariaDB (sau MySQL) care rulează normal în fundal.
Deschide terminalul și rulează:
sudo systemctl stop mariadb
(Notă: Dacă folosești MySQL în loc de MariaDB, înlocuiește mariadb cu mysql în toate comenzile de mai jos).
Pasul 2: Pornirea în "Safe Mode" (Fără parole)
Acum vom folosi un truc: vom porni baza de date într-un mod de siguranță (--skip-grant-tables) care dezactivează complet verificarea parolelor și blochează conexiunile externe din rețea.
Setăm opțiunile de siguranță în mediul sistemului:
sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables --skip-networking"
Pornim baza de date cu aceste opțiuni speciale aplicate:
sudo systemctl start mariadb
Pasul 3: Conectarea și Resetarea parolei
Acum că ușa este larg deschisă, ne putem conecta ca Administrator absolut (root) fără nicio parolă.
Intră în consola bazei de date:
sudo mysql -u root
Deoarece am sărit peste tabelele de permisiuni la pornire, trebuie să îi spunem bazei de date să le încarce manual pentru a putea face modificări:
FLUSH PRIVILEGES;
Acum setăm noua parolă (înlocuiește NouaTaParola cu o parolă puternică):
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NouaTaParola';
(Dacă vrei să resetezi parola pentru alt utilizator, de exemplu nc_user sau flarumuser, pur și simplu pune numele lui în loc de root).
Ieși din consolă:
EXIT;
Pasul 4: Revenirea la starea normală (Foarte Important!)
Nu putem lăsa baza de date să ruleze fără parole! Trebuie să ștergem opțiunile de siguranță și să o repornim normal.
Ștergem variabilele de mediu setate anterior:
sudo systemctl unset-environment MYSQLD_OPTS
Repornim serviciul definitiv:
sudo systemctl restart mariadb
🎉 Gata! Baza ta de date este acum securizată din nou, iar tu te poți conecta folosind noua parolă salvatoare.