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.

  1. Kako instalirati MySQL 8 u CentOS, RHEL i Fedora
  2. 15 korisnih savjeta za podešavanje i optimizaciju performansi MySQL
  3. 12 MySQL sigurnosne prakse za Linux
  4. 4 korisna alata komandne linije za praćenje performansi MySQL-a
  5. 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.