Wyszukiwanie w witrynie

Jak zresetować hasło roota w MySQL 8.0


W niefortunnym przypadku zapomnienia lub utraty hasła root do MySQL z pewnością będziesz potrzebować sposobu na jego odzyskanie. Musimy wiedzieć, że hasło jest przechowywane w tabeli użytkowników. Oznacza to, że musimy znaleźć sposób na ominięcie uwierzytelniania MySQL, abyśmy mogli zaktualizować rekord hasła.

Na szczęście jest to łatwe do osiągnięcia i ten samouczek poprowadzi Cię przez proces odzyskiwania lub resetowania hasła roota w wersji MySQL 8.0.

Zgodnie z dokumentacją MySQL istnieją dwa sposoby resetowania hasła root MySQL. Przeanalizujemy oba.

Zresetuj hasło roota MySQL za pomocą pliku –init

Jednym ze sposobów zresetowania hasła roota jest utworzenie pliku lokalnego, a następnie uruchomienie usługi MySQL za pomocą opcji --init-file, jak pokazano.

vim /home/user/init-file.txt

Ważne jest, aby upewnić się, że plik jest czytelny dla użytkownika mysql. W tym pliku wklej następujące polecenie:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

W powyższym przypadku zmień „nowe_hasło” na hasło, którego chcesz używać.

Teraz upewnij się, że usługa MySQL jest zatrzymana. Możesz wykonać następujące czynności:

systemctl stop mysqld.service     # for distros using systemd 
/etc/init.d/mysqld stop           # for distros using init

Następnie uruchom następujące polecenie:

mysqld --user=mysql --init-file=/home/user/init-file.txt --console

Spowoduje to uruchomienie usługi MySQL i podczas tego procesu wykona ona utworzony plik init, a tym samym hasło użytkownika root zostanie zaktualizowane. Pamiętaj, aby usunąć plik po zresetowaniu hasła.

Pamiętaj, aby zatrzymać serwer, a następnie uruchomić go normalnie.

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

Powinieneś teraz móc połączyć się z serwerem MySQL jako root, używając nowego hasła.

mysql -u root -p

Zresetuj hasło roota MySQL za pomocą –skip-grant-tables

Drugą opcją, jaką mamy, jest uruchomienie usługi MySQL z opcją --skip-grant-tables. Jest to mniej bezpieczne, ponieważ podczas uruchamiania usługi wszyscy użytkownicy mogą łączyć się bez hasła.

Jeśli serwer jest uruchomiony --skip-grant-tables, opcja --skip-networking jest automatycznie aktywowana, więc połączenia zdalne nie będą dostępne.

Najpierw upewnij się, że usługa MySQL jest zatrzymana.

systemctl stop mysqld.service     # for distros using systemd 
/etc/init.d/mysqld stop           # for distros using init

Następnie uruchom usługę z następującą opcją.

mysqld --skip-grant-tables --user=mysql &

Następnie możesz połączyć się z serwerem mysql, po prostu uruchamiając.

mysql

Ponieważ zarządzanie kontem jest wyłączone, gdy usługa jest uruchamiana z opcją --skip-grant-tables, będziemy musieli ponownie załadować granty. Dzięki temu będziemy mogli później zmienić hasło:

FLUSH PRIVILEGES;

Teraz możesz uruchomić następujące zapytanie, aby zaktualizować hasło. Pamiętaj, aby zmienić „nowe_hasło” na rzeczywiste hasło, którego chcesz używać.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';

Teraz zatrzymaj serwer MySQL i uruchom go normalnie.

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

Powinieneś móc połączyć się przy użyciu nowego hasła.

mysql -u root -p

Możesz także przeczytać poniższe przydatne artykuły dotyczące MySQL.

  1. Jak zainstalować MySQL 8 w CentOS, RHEL i Fedorze
  2. 15 przydatnych wskazówek dotyczących dostrajania i optymalizacji wydajności MySQL
  3. 12 praktyk bezpieczeństwa MySQL dla systemu Linux
  4. 4 Przydatne narzędzia wiersza poleceń do monitorowania wydajności MySQL
  5. Polecenia administracyjne bazy danych MySQL
Wniosek

W tym artykule dowiedziałeś się, jak zresetować utracone hasło roota dla serwera MySQL 8.0. Mam nadzieję, że proces był łatwy.