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ć?

Andrzej
źródło

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

Andrzej
źródło
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.

womble
źródło
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 .


źródło
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!

Benzoes
źródło
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'
Abadi
źródło
-1

W najnowszej wersji MySQL 5.7.23:

mysqladmin -u root password '' -p

maestro
źródło