Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak zresetować hasło roota w MySQL 8.0?

W niefortunnym przypadku zapomnienia lub utraty hasła roota 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, a ten samouczek poprowadzi Cię przez proces odzyskiwania lub resetowania hasła roota w wersji MySQL 8.0.

Zgodnie z dokumentacją MySQL istnieją dwa sposoby na zresetowanie głównego hasła MySQL. Sprawdzimy oba.

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

Jednym ze sposobów na zresetowanie hasła roota jest utworzenie pliku lokalnego, a następnie uruchomienie usługi MySQL za pomocą --init-file opcja, 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 elementy:

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

W powyższej zmianie „nowe_hasło ” z hasłem, którego chcesz użyć.

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 plik init, który utworzyłeś, a tym samym hasło dla użytkownika root zostanie zaktualizowane. Pamiętaj, aby usunąć plik po zresetowaniu hasła.

Pamiętaj, aby zatrzymać serwer i 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 być w stanie połączyć się z serwerem MySQL jako root przy użyciu 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 za pomocą --skip-grant-tables opcja. Jest to mniej bezpieczne, ponieważ gdy usługa jest uruchomiona w ten sposób, wszyscy użytkownicy mogą łączyć się bez hasła.

Jeśli serwer jest uruchomiony --skip-grant-tables , opcja dla --skip-networking jest automatycznie aktywowany, 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 za pomocą --skip-grant-tables opcji, będziemy musieli przeładować granty. W ten sposób 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 aktualne 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

Połączenie powinno być możliwe przy użyciu nowego hasła.

# mysql -u root -p

Możesz również przeczytać te przydatne artykuły związane z 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 Linuksa
  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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Co sprawdzić, jeśli wykorzystanie pamięci MySQL jest wysokie?

  2. Jak porównywać wydajność MySQL za pomocą SysBench?

  3. Left Outer Join nie zwraca wszystkich wierszy z mojej lewej tabeli?

  4. Jak zaimportować plik Excela do bazy danych MySQL

  5. Zwracanie zestawu wyników