Kako resetirati root lozinku u MySQL 8.0
U nesretnom slučaju kada zaboravite ili izgubite MySQL root lozinku, zasigurno će vam trebati način da je nekako vratite. Ono što moramo znati je da je lozinka pohranjena u tablici korisnika. To znači da moramo smisliti način zaobilaženja MySQL provjere autentičnosti, kako bismo mogli ažurirati zapis lozinke.
Srećom to je lako postići i ovaj vodič će vas voditi kroz postupak oporavka ili resetiranja root lozinke u verziji MySQL 8.0.
Prema MySQL dokumentaciji, postoje dva načina za resetiranje root MySQL lozinke. Pregledat ćemo i jedno i drugo.
Resetirajte MySQL root lozinku pomoću –init-datoteke
Jedan od načina resetiranja root lozinke je stvaranje lokalne datoteke, a zatim pokretanje MySQL usluge pomoću opcije --init-file
, kao što je prikazano.
# vim /home/user/init-file.txt
Važno je da se pobrinete da datoteku može čitati korisnik mysql-a. U tu datoteku zalijepite sljedeće:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
U gore navedenom promijenite "new_password" lozinkom koju želite koristiti.
Sada se pobrinite da je MySQL usluga zaustavljena. 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 uslugu i tijekom postupka izvršit će init-datoteku koju ste stvorili, a time će se ažurirati lozinka za root korisnika. Obavezno izbrišite datoteku nakon resetiranja lozinke.
Obavezno zaustavite poslužitelj i nakon toga ga normalno pokrenite.
# 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 se mogli povezati na MySQL poslužitelj kao root koristeći novu lozinku.
# mysql -u root -p
Resetirajte root lozinku MySQL pomoću –skip-grant-tablica
Druga opcija koju imamo je pokretanje MySQL usluge s opcijom --skip-grant-tables
. Ovo je manje sigurno, jer dok se usluga pokreće na taj način, svi se korisnici mogu povezati bez lozinke.
Ako je poslužitelj pokrenut --skip-grant-tables
, opcija za --skip-networking
automatski se aktivira, tako da daljinske veze neće biti dostupne.
Prvo se pobrinite da je MySQL usluga zaustavljena.
# 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 s mysql poslužiteljem jednostavnim pokretanjem.
# mysql
Budući da je upravljanje računima onemogućeno kad se usluga pokreće s opcijom --skip-grant-table
, morat ćemo ponovo učitati potpore. Na taj ćemo način lozinku moći kasnije promijeniti:
# FLUSH PRIVILEGES;
Sada možete pokrenuti sljedeći upit za ažuriranje lozinke. Svakako promijenite "new_password" sa stvarnom lozinkom koju želite koristiti.
# ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';
Sada zaustavite MySQL poslužitelj 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 se moći povezati s novom lozinkom.
# mysql -u root -p
Možda biste htjeli pročitati i ove korisne članke koji se odnose na MySQL.
- Kako instalirati MySQL 8 u CentOS, RHEL i Fedora
- 15 korisnih MySQL savjeta za podešavanje i optimizaciju izvedbe
- 12 MySQL sigurnosnih praksi za Linux
- 4 korisna alata naredbenog retka za praćenje MySQL izvedbe
- Naredbe administracije baze podataka MySQL
U ovom ste članku naučili kako resetirati izgubljenu root lozinku za MySQL 8.0 poslužitelj. Nadam se da je postupak bio lak.