Odpowiedzi:
Zatrzymaj proces MySQL.
Uruchom proces MySQL z opcją --skip-grant-table.
Uruchom klienta konsoli MySQL z opcją -u root.
Wymień wszystkich użytkowników;
SELECT * FROM mysql.user;
Zresetuj hasło;
UPDATE mysql.user SET Password=PASSWORD('[password]') WHERE User='[username]';
Ale NIE ZAPOMNIJ do
Zatrzymaj proces MySQL
Uruchom proces MySQL normalnie (tj. Bez opcji --skip-grant-table)
kiedy kończysz. W przeciwnym razie bezpieczeństwo Twojej bazy danych może zostać naruszone.
dpkg-reconfigure mysql-server-5.5polecenia do resetowania hasła root MySQL?
-ujest to ignorowane przy uruchamianiu serwera --skip-grant-tables.
mysql.userwywoływanej kolumny password, użyj authentication_stringzamiast tego.
Niestety Twoje hasło użytkownika jest nieodwracalne. Został zaszyfrowany jednokierunkowym hashem, który, jeśli nie wiesz, jest nieodwracalny. Polecam pójść z Xenph Yan powyżej i po prostu utwórz nowy.
Możesz również skorzystać z następującej procedury z podręcznika, aby zresetować hasło dla dowolnego konta root MySQL w systemie Windows:
Menu Start -> Panel sterowania -> Narzędzia administracyjne -> Usługi
Następnie znajdź usługę MySQL na liście i zatrzymaj ją. Jeśli serwer nie działa jako usługa, może być konieczne użycie Menedżera zadań, aby wymusić jego zatrzymanie.
Utwórz plik tekstowy i umieść w nim następujące instrukcje. Zastąp hasło hasłem, którego chcesz używać.
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
FLUSH PRIVILEGES;
Każda instrukcja UPDATE i FLUSH musi być zapisana w jednym wierszu. Instrukcja UPDATE resetuje hasło dla wszystkich istniejących kont root oraz FLUSH nakazuje serwerowi ponowne załadowanie tabel grantów do pamięci.
Otwórz okno konsoli, aby przejść do wiersza poleceń:
Menu Start -> Uruchom -> cmd
Uruchom serwer MySQL ze specjalną opcją --init-file :
C:\> C:\mysql\bin\mysqld-nt --init-file = C:\mysql-init.txt
Jeśli zainstalowałeś MySQL w lokalizacji innej niż C: \ mysql , odpowiednio dostosuj polecenie.
Serwer wykonuje podczas uruchamiania zawartość pliku o nazwie --init-file , zmieniając każdy z nich katalog główny hasło konta .
Możesz także dodać opcję --console opcję do polecenia, jeśli chcesz, aby dane wyjściowe serwera pojawiały się w oknie konsoli, a nie w pliku dziennika.
Jeśli zainstalowałeś MySQL za pomocą Kreatora instalacji MySQL, może być konieczne określenie opcji --defaults-file :
C:\> "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe" --defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini" --init-file=C:\mysql-init.txt
Odpowiednie ustawienie --defaults-file można znaleźć za pomocą Menedżera usług:
Menu Start -> Panel sterowania -> Narzędzia administracyjne -> Usługi
Znajdź usługę MySQL na liście, kliknij ją prawym przyciskiem myszy i wybierz opcję Właściwości. Pole Ścieżka do pliku wykonywalnego zawiera plik --defaults-file .
Powinieneś teraz być w stanie połączyć się z MySQL jako root przy użyciu nowego hasła.
mysqld-ntzamiast mysqld?
Ulepszenie najbardziej przydatnej odpowiedzi tutaj:
1] Nie ma potrzeby ponownego uruchamiania serwera mysql
2] Problem dotyczący bezpieczeństwa serwera MySQL podłączonego do sieci
Nie ma potrzeby ponownego uruchamiania serwera MySQL.
użyj FLUSH PRIVILEGES;po aktualizacji instrukcji mysql.user do zmiany hasła.
Instrukcja FLUSH instruuje serwer, aby ponownie załadował tabele grantów do pamięci, aby zauważył zmianę hasła.
--skip-grant-optionsPozwala każdemu, aby połączyć bez hasła i ze wszystkimi przywilejami. Ponieważ jest to niebezpieczne, możesz chcieć
użyj --skip-grant-table w połączeniu z --skip-networking, aby uniemożliwić zdalnym klientom połączenie.
from: reference: resetting-permissions-generic
mysql.user? Jednak często tak nie jest.
Chociaż nie możesz bezpośrednio odzyskać hasła MySQL bez brutalnego forsowania, może istnieć inny sposób - jeśli użyłeś MySQL Workbench do połączenia się z bazą danych i zapisałeś poświadczenia w „skarbcu”, jesteś złoty.
W systemie Windows poświadczenia są przechowywane w % APPDATA% \ MySQL \ Workbench \ workbench_user_data.dat - zaszyfrowane za pomocą CryptProtectData (bez dodatkowej entropii). Odszyfrowanie jest łatwe:
std::vector<unsigned char> decrypt(BYTE *input, size_t length) {
DATA_BLOB inblob { length, input };
DATA_BLOB outblob;
if (!CryptUnprotectData(&inblob, NULL, NULL, NULL, NULL, CRYPTPROTECT_UI_FORBIDDEN, &outblob)) {
throw std::runtime_error("Couldn't decrypt");
}
std::vector<unsigned char> output(length);
memcpy(&output[0], outblob.pbData, outblob.cbData);
return output;
}
Lub możesz sprawdzić ten wątek DonationCoder dla źródła i pliku wykonywalnego szybkiej i brudnej implementacji.
Uruchom następujące polecenie w terminalu, aby połączyć się z DBMS (potrzebujesz uprawnień administratora):
sudo mysql -u root -p;
uruchom hasło aktualizacji użytkownika docelowego (dla mojej przykładowej nazwy użytkownika mousavii jego hasła musi to być 123456):
UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE user='mousavi';
w tym momencie musisz wykonać rzut, aby zastosować zmiany:
FLUSH PRIVILEGES;
Gotowe! Zrobiłeś to bez zatrzymywania lub restartowania usługi mysql.
Jeśli masz uprawnienia roota do serwera, na którym działa mysql, powinieneś zatrzymać serwer mysql za pomocą tego polecenia
sudo service mysql stop
Teraz uruchom mysql za pomocą tego polecenia
sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
Teraz możesz zalogować się do mysql za pomocą
sudo mysql
FLUSH PRIVILEGES;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
Pełne instrukcje można znaleźć tutaj http://www.techmatterz.com/recover-mysql-root-password/
Zaloguj się do MySql z Windows cmd przy użyciu istniejącego użytkownika:
mysql -u nazwa użytkownika -p
Wpisz hasło: ****
Następnie uruchom następujące polecenie:
mysql> SELECT * FROM mysql.user;
Następnie skopiuj zaszyfrowane hasło md5 dla odpowiedniego użytkownika i istnieje kilka aplikacji do odszyfrowania hasła online dostępnych w Internecie. Używając tego odszyfrowanego hasła i użyj go do zalogowania się następnym razem. lub zaktualizuj hasło użytkownika za pomocą polecenia:
mysql> UPDATE mysql.user SET Password=PASSWORD('[password]') WHERE User='[username]';
Następnie zaloguj się przy użyciu nowego hasła i użytkownika.
JEŚLI masz skonfigurowane ODBC, możesz uzyskać hasło z pliku konfiguracyjnego ODBC. Znajduje się w /etc/odbc.ini dla systemu Linux oraz w folderze Software / ODBC w rejestrze systemu Windows (jest ich kilka - może to zająć trochę poszukiwań)
Zapisz plik. W tym przykładzie plik będzie miał nazwę C: \ mysql-init.txt. prosi o uprawnienia administracyjne do zapisania pliku
Chociaż ścisła, logiczna, informatyczna interpretacja pytania operatora wymagałaby zarówno „Jak mogę odzyskać moją nazwę użytkownika MySQL”, jak i „hasła” - pomyślałem, że może być przydatne dla kogoś, kto również zajmie się operacją LUB interpretacji . Innymi słowy ...
1) Jak mogę odzyskać swoją nazwę użytkownika MySQL?
LUB
2) hasło
Wydaje się, że ten ostatni warunek został już obszernie rozwiązany, więc nie będę się tym przejmować. Poniżej przedstawiono rozwiązanie dla samego przypadku „Jak odzyskać moją nazwę użytkownika MySQL”. CZEŚĆ.
Aby znaleźć swoją nazwę użytkownika mysql, uruchom następujące polecenia z powłoki mysql ...
WYBIERZ użytkownika z mysql.user;
wypisze tabelę wszystkich użytkowników mysql.