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.

  1. Kako instalirati MySQL 8 u CentOS, RHEL i Fedora
  2. 15 korisnih MySQL savjeta za podešavanje i optimizaciju izvedbe
  3. 12 MySQL sigurnosnih praksi za Linux
  4. 4 korisna alata naredbenog retka za praćenje MySQL izvedbe
  5. 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.