Próbowałem zresetować moje hasło roota MySQL. Uruchomiłem tabele mysqld_safe --skip-grant-table, zaktualizowałem hasło roota i sprawdziłem tabelę użytkowników, aby upewnić się, że tam jest. Po ponownym uruchomieniu demona mysql próbowałem zalogować się przy użyciu nowego hasła roota, które właśnie ustawiłem, i nadal otrzymuję odmowę dostępu z powodu błędów użytkownika „root”. Próbowałem również całkowicie usunąć i ponownie zainstalować mysql (w tym usunąć plik my.cnf) i nadal nie mam szczęścia. Czy ktoś ma jakieś sugestie, co mogę zrobić dalej?
Z góry dziękuję
mysql
root
mysqladmin
nacięcie
źródło
źródło
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('somepassword');
jest najbezpieczniejszy.Odpowiedzi:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mypass'); FLUSH PRIVILEGES;
źródło
FLUSH PRIVILEGES
aby wprowadzić zmiany bez ponownego uruchamiania serwera bazy danych.spójrz na to w podręczniku MySQL:
Pierwsze logowanie mysql:
# mysql -u root -p
Następnie w zachęcie mysql uruchom:
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
Następnie
FLUSH PRIVILEGES;
Zajrzyj na tę stronę, aby uzyskać więcej informacji: Resetowanie hasła roota: Systemy Unix
źródło
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Resetowanie hasła roota można znaleźć w dokumentacji MySQL.
źródło
mysqld --initialize --console
To jest zaktualizowana odpowiedź dla WAMP v3.0.6 i nowszych
> UPDATE mysql.user > SET authentication_string=PASSWORD('MyNewPass') > WHERE user='root'; > FLUSH PRIVILEGES;
W MySQL w wersji 5.7.x nie ma już pola hasła w tabeli mysql. Został zastąpiony ciągiem uwierzytelniania. (To jest dla terminala / CLI)
UPDATE mysql.user SET authentication_string=PASSWORD('MyNewPass') WHERE user='root'; FLUSH PRIVILEGES;
(To jeśli dla PHPMyAdmin lub dowolnego GUI MySQL)
źródło
mysql.user
tabela powinna zostać zaktualizowana. Zwróć uwagę, że jeśli używasz innej bazy danych (ustawionej przezuse
polecenie), pojawi się błąd, że tabelauser
nie istnieje. Dziękuję Panu!mysql.user
tabeli. inne odpowiedzi są nieaktualneZnalazłem to! Zapomniałem zaszyfrować hasło, kiedy je zmieniłem. Użyłem tego zapytania, aby rozwiązać mój problem:
update user set password=PASSWORD('NEW PASSWORD') where user='root';
Zapomniałem
PASSWORD('NEW PASSWORD')
i po prostu wstawiłem nowe hasło zwykłym tekstemźródło
--init-file=
jeśli wyszedłeś.Wykonaj poniższe kroki.
krok 1. zatrzymaj mysql
krok 2.
sudo mysqld_safe --skip-grant-tables
krok 3.
mysql -u root
krok 4.
use mysql;
krok5.
show tables;
krok 6.
describe user;
krok 7.
update user set authentication_string=password('1111') where user='root';
zaloguj się hasłem 1111
źródło
flush privileges
jest ważny jako ostatni krok.Rozglądałem się też i prawdopodobnie niektóre odpowiedzi pasują do niektórych sytuacji,
moja sytuacja to Mysql 5.7 w systemie Ubuntu 18.04.2 LTS:
(uzyskaj uprawnienia roota)
(ustaw hasło dla użytkownika root db + zaimplementuj zabezpieczenia w krokach)
# mysql_secure_installation
(daj dostęp użytkownikowi root za pomocą hasła zamiast gniazda)
(+ edycja: najwyraźniej musisz ponownie ustawić hasło?)
(nie ustawiaj go na „mySecretPassword” !!!)
# mysql -u root mysql> USE mysql; mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root'; mysql> set password for 'root'@'localhost' = PASSWORD('mySecretPassword'); mysql> FLUSH PRIVILEGES; mysql> exit; # service mysql restart
Wielkie dzięki dla zetacu (i ericha ) za tę doskonałą odpowiedź (po kilku godzinach wyszukiwania ...)
Ciesz się :-D
S.
Edycja (2020):
Ta metoda już nie działa, zobacz to pytanie w przyszłości ...
źródło
W MySQL 8.0.4+
Aby zaktualizować aktualnego użytkownika root:
select current_user(); set password = 'new_password';
Aby zaktualizować innego użytkownika:
set password for 'otherUser'@'localhost' = 'new_password';
Aby ustawić politykę haseł przed aktualizacją hasła:
set global validate_password.policy = 0; set password = 'new_password'; set password for 'otherUser'@'localhost' = 'new_password';
Inny / lepszy sposób aktualizacji hasła roota:
Chcesz pozostać przy uwierzytelnianiu 5.x, aby nadal korzystać ze starszych aplikacji?
Na
my.cnf
Aby zaktualizować root:
set global validate_password.policy = 0; alter user 'root'@'localhost' identified with mysql_native_password by 'new_password';
źródło
To zadziałało dla mnie -
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
https://dev.mysql.com/doc/mysql-windows-excerpt/5.7/en/resetting-permissions-windows.html
źródło
Musisz zresetować hasło! kroki dla systemu Mac OSX (przetestowane i działające) i Ubuntu
Zatrzymaj MySQL
$ sudo /usr/local/mysql/support-files/mysql.server stop
Uruchom w trybie awaryjnym:
$ sudo mysqld_safe --skip-grant-tables
(powyżej linii jest całe polecenie)
Będzie to ciągłe polecenie do zakończenia procesu, więc otwórz kolejne okno powłoki / terminala, zaloguj się bez hasła:
$ mysql -u root mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
Uruchom MySQL
sudo /usr/local/mysql/support-files/mysql.server start
Twoje nowe hasło to „hasło”.
źródło
Dla MySQL 5.7.6 i nowszych:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
MySQL 5.7.5 i wcześniejsze:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
źródło
W przypadku najnowszej wersji mysql (8.0.16) żadna z tych odpowiedzi nie zadziałała.
Po przyjrzeniu się kilku różnym odpowiedziom i połączeniu ich razem, oto co ostatecznie zadziałało:
update user set authentication_string='test' where user='root';
Mam nadzieję że to pomoże.
źródło
Częstym błędem, na który napotykam od czasu do czasu, jest to, że zapomniałem
-p
opcji, więc czy na pewno użyłeś:źródło
W MySQL 5.7 hasło jest zastępowane ciągiem „authentication_string”.
posługiwać się
update user set authentication_string=password('myfavpassword') where user='root';
źródło
Użycie narzędzia wiersza poleceń mysqladmin do zmiany hasła MySQL:
mysqladmin --user=root --password=oldpassword password "newpassword"
Źródło
źródło
Wypróbowałem odpowiedź z @kta, ale nie zadziałała.
Używam MySQL 8.0
To zadziałało dla mnie:
mysql>
SET PASSWORD FOR 'root'@'localhost' = 'yourpassword'
źródło
Tak wiele komentarzy, ale pomogła mi ta metoda:
W moim przypadku po instalacji otrzymałem usługę mysql bez hasła dla użytkownika root i musiałem ustawić hasło dla mojego bezpieczeństwa.
źródło
Aug 07 16:21:55 ubuntupc sudo[93250]: user : TTY=pts/0 ; PWD=/home/user ; USER=root ; COMMAND=/usr/bin/mysqladmin -u root password 'my password'
zatrzymaj wszystkie usługi wamp, wyjdź z wampa.
otwórz notatnik, a następnie wpisz> USTAW HASŁO DLA 'root' @ 'localhost' = PASSWORD ('');
następnie zapisz go na c: dysk pod dowolną nazwą .. na przykład „c: /example.txt”
teraz idź do swojego „wamp” falder wamp> bin> mysql> mysql (twoja wersja)> bin w mojej skrzynce ścieżka to „C: \ wamp \ bin \ mysql \ mysql5.6.17 \ bin”
teraz skopiuj ścieżkę, a następnie uruchom cmd z (ctrl + r), a następnie wpisz „cmd” (enter)
wpisz cd, a następnie kliknij prawym przyciskiem myszy cmd i wklej ścieżkę (enter) teraz wpisz (mysqld --init-file = C: \ example.txt) bez nawiasów klamrowych następnie (enter)
następnie uruchom ponownie komputer lub otwórz taskmgr i zabij mysqld.exe
uruchom wampa, a twoje hasło zostanie usunięte ...
źródło
Dla użytkowników MacOS, jeśli zapomnisz hasła roota, odpowiedź @ thusharaK ( https://stackoverflow.com/a/28601069/5628856 ) jest dobra, ale jest trochę więcej sztuczek:
Jeśli używasz preferencji systemowych, aby uruchomić mysql serveride, po prostu
sudo mysqld_safe --skip-grant-tables
może nie działać dla Ciebie.
Musisz upewnić się, że argumenty wiersza poleceń są takie same, jak w przypadku konfiguracji startowej systemu.
Następujące polecenie działa dla mnie:
/usr/local/mysql/bin/mysqld --user=_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/usr/local/mysql/data/mysqld.local.err --pid-file=/usr/local/mysql/data/mysqld.local.pid --keyring-file-data=/usr/local/mysql/keyring/keyring --early-plugin-load=keyring_file=keyring_file.so --skip-grant-tables
Możesz użyć
sprawdzić własne.
źródło
Lub po prostu użyj interaktywnej konfiguracji:
źródło
W systemie Ubuntu
Zastąp
5.5
swoją aktualną wersją, a zostaniesz poproszony o podanie nowego hasła roota.źródło
źródło