Jak zmienić hasło roota mysql z powrotem na puste?


43

Kiedy pracuję lokalnie, tak naprawdę nie muszę wprowadzać hasła, aby uzyskać dostęp do mojej bazy danych. Zmieniłem hasło roota podczas pierwszej instalacji mysql, ale nie wiem, jak zmienić hasło z powrotem. Co powinienem zrobić?

Odpowiedzi:


43

Aby zmienić hasło roota na newpassword:

 mysqladmin -u root -p'oldpassword' password 'newpassword'

Aby to zmienić, aby root nie wymagał hasła:

 mysqladmin -u root -p'oldpassword' password ''

Uwaga: Myślę, że to ważne, że nie jest to przestrzeń między -pi 'oldpassword', ale mogę się mylić, że


3
ciągle pojawia się błąd: odmowa dostępu dla „root” @ localhost. jak mogę to naprawić?
tq

działa dla mnie: mysqladmin -u korzeń -p'oldpassword”password '' @tq: należy wpisać extactly Oldpassword
Bao Nam

15

Zamiast usuwać hasło (co może mieć nieprzyjemne konsekwencje w przyszłości, jeśli zdarzy ci się wystawiać ten serwer na dzicz), umieść bieżące hasło (i swoją nazwę użytkownika) w ~/.my.cnf(lub prawdopodobnie w równoważnej lokalizacji w systemie Windows), która wygląda następująco:

[client]
user = root
password = s3kr1t

To daje MySQL niesamowitą możliwość autologowania przy użyciu podanych poświadczeń, bez pozostawiania otwartej przestrzeni na nieprzyjemności w przyszłości.


7
  1. Zatrzymaj mysqld i uruchom go ponownie z opcją --skip-grant-tables .
  2. Połącz się z nim za pomocą tylko mysql .
  3. Zmień hasło roota:

    AKTUALIZACJA mysql.user SET Hasło = HASŁO („MyNewPass”) GDZIE Użytkownik = „root”;

    PRZYWILEJE PŁUCZĄCE;

Dla odniesienia: oficjalne dokumenty mysql .


1
To działa, ale jest to metoda brutalnej siły. Jest to bardziej przydatne, gdy nie znasz hasła.
David

6

Zauważ, że począwszy od MySQL 5.7 wtyczka validate_password jest domyślnie aktywna i uniemożliwia użycie pustego hasła.

Musisz wyłączyć tę wtyczkę, aby zezwolić na puste hasło:

UNINSTALL PLUGIN validate_password;
SET PASSWORD FOR root@localhost = PASSWORD('');

Uważaj, aby nie przejmować się bezpieczeństwem, postępuj zgodnie z radą @ womble i używaj hasła wraz z .my.cnfplikiem dla wygody.

Sprawdź mój artykuł Usuwanie hasła root MySQL na ten temat!


W przypadku wersji> 5.6 jest to jedyny sposób, który działa. Podejrzewam, że powinien działać również na poprzednich wersjach.
Diego,

1

W nowszych wersjach

UPDATE mysql.user SET authentication_string=PASSWORD('MyNewPass') WHERE User='root'

a to usunie hasło

UPDATE mysql.user SET authentication_string=PASSWORD('') WHERE User='root'

-1

W najnowszej wersji MySQL 5.7.23:

mysqladmin -u root password '' -p

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.