Kako resetirati root lozinku u MySQL 8.0
U nesretnom slučaju da zaboravite ili izgubite svoju MySQL root lozinku, sigurno će vam trebati način da je nekako oporavite. Ono što trebamo znati je da je lozinka pohranjena u tablici korisnika. To znači da moramo smisliti način da zaobiđemo MySQL autentifikaciju, kako bismo mogli ažurirati zapis lozinke.
Srećom, postoji lako postići i ovaj vodič će vas voditi kroz proces oporavka ili resetiranja root lozinke u MySQL 8.0 verziji.
Prema MySQL dokumentaciji postoje dva načina da se resetuje root MySQL lozinka. Pregledaćemo oba.
Resetujte MySQL root lozinku koristeći –init-file
Jedan od načina da se resetuje root lozinka je kreiranje lokalne datoteke i zatim pokretanje MySQL servisa koristeći opciju --init-file
kao što je prikazano.
vim /home/user/init-file.txt
Važno je da se uverite da je fajl čitljiv za mysql korisnik. Unutar tog fajla zalijepite sljedeće:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
U gornjem tekstu promijenite “new_password” sa lozinkom koju želite koristiti.
Sada se uvjerite da je MySQL servis zaustavljen. Možete učiniti sljedeće:
systemctl stop mysqld.service # for distros using systemd
/etc/init.d/mysqld stop # for distros using init
Zatim pokrenite sljedeće:
mysqld --user=mysql --init-file=/home/user/init-file.txt --console
Ovo će pokrenuti MySQL servis i tokom procesa će izvršiti init-fajl koji ste kreirali i tako će lozinka za root korisnika biti ažurirana. Obavezno izbrišite datoteku nakon što se lozinka resetuje.
Obavezno zaustavite server i pokrenite ga normalno nakon toga.
systemctl stop mysqld.service # for distros using systemd
systemctl restart mysqld.service # for distros using systemd
/etc/init.d/mysqld stop # for distros using init
/etc/init.d/mysqld restart # for distros using init
Sada biste trebali biti u mogućnosti da se povežete na MySQL server kao root koristeći novu lozinku.
mysql -u root -p
Resetujte MySQL root lozinku koristeći –skip-grant-tables
Druga opcija koju imamo je da pokrenemo MySQL servis sa opcijom --skip-grant-tables
. Ovo je manje bezbedno jer dok se servis pokrene na taj način, svi korisnici se mogu povezati bez lozinke.
Ako je server pokrenut --skip-grant-tables
, opcija za --skip-networking
se automatski aktivira tako da daljinske veze neće biti dostupne.
Prvo se uvjerite da je MySQL servis zaustavljen.
systemctl stop mysqld.service # for distros using systemd
/etc/init.d/mysqld stop # for distros using init
Zatim pokrenite uslugu sa sljedećom opcijom.
mysqld --skip-grant-tables --user=mysql &
Zatim se možete povezati na mysql server jednostavnim pokretanjem.
mysql
Pošto je upravljanje nalogom onemogućeno kada se servis pokrene sa --skip-grant-tables
opcijom, moraćemo ponovo učitati grantove. Na taj način ćemo kasnije moći promijeniti lozinku:
FLUSH PRIVILEGES;
Sada možete pokrenuti sljedeći upit da ažurirate lozinku. Obavezno promijenite “new_password” sa stvarnom lozinkom koju želite koristiti.
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';
Sada zaustavite MySQL server i pokrenite ga normalno.
systemctl stop mysqld.service # for distros using systemd
systemctl restart mysqld.service # for distros using systemd
/etc/init.d/mysqld stop # for distros using init
/etc/init.d/mysqld restart # for distros using init
Trebali biste biti u mogućnosti da se povežete sa svojom novom lozinkom.
mysql -u root -p
Možda biste željeli pročitati i ove korisne članke koji se odnose na MySQL.
- Kako instalirati MySQL 8 u CentOS, RHEL i Fedora
- 15 korisnih savjeta za podešavanje i optimizaciju performansi MySQL
- 12 MySQL sigurnosne prakse za Linux
- 4 korisna alata komandne linije za praćenje performansi MySQL-a
- Komande administracije MySQL baze podataka
Zaključak
U ovom članku naučili ste kako da resetujete izgubljenu root lozinku za MySQL 8.0 server. Nadam se da je proces bio lak.