Z założenia lepiej haseł nie zapominać, ale czasem bywa to trudne, zwłaszcza gdy się przestrzega zasad w stylu “do każdego serwisu/konta indywidualne/unikatowe hasło” czy “nigdzie nie zapisuj haseł” – dlatego dziś będziemy odzyskiwać zapomniane hasło do panelu zarządzania WordPressem.
Spis treści w artykule
WordPress i zapomniane hasło
Teoretycznie odzyskanie dostępu do WordPressa nie jest specjalnie trudne – wystarczy na oknie logowania skorzystać z opcji:
Nie pamiętasz hasła?
W tym momencie zostaniemy przeniesieni na stronę:
https://[adres_strony]/wp-login.php?action=lostpassword
Znajduje się tu formularz, w którym wystarczy wpisać naszą nazwę użytkownika lub adres e-mail:
Po chwili otrzymacie e-mail z linkiem w stylu:
https://[adres_strony]/wp-login.php?action=rp&key=[kod]&login=[nazwa_użytkownika]
Wystarczy na niego kliknąć, by trafić do kolejnego formularza, za pomocą którego utworzycie nowe hasło:
Proste i szybkie… O ile macie dostęp do adresu e-mail przypisanego do swojego konta…
Reset hasła z poziomu drugiego konta
W innym wypadku – jeśli do naszej strony jest przypisany inny użytkownik (kolega, zapasowy użytkownik) z odpowiednimi uprawnieniami, możemy skorzystać z jego pomocy.
Wystarczy z drugiego konta przejść do edycji użytkownika z problemem:
- Użytkownicy > Wszyscy użytkownicy > [użytkownik z problemem]
I w odpowiednim miejscu ustawić nowe hasło:
Proste i szybkie… O ile jest drugi użytkownik z odpowiednimi uprawnieniami…
Resetowanie hasła do WordPressa w MySQL
Gdy bierzemy się za bazę danych (co najmniej) mamy 3 drogi:
- Bezpośrednia edycja tabeli z poziomu phpMyAdmin
- Polecenie (zapytanie) SQL z poziomu phpMyAdmin
- Polecenie (zapytanie) SQL z wiersza poleceń/konsoli
Wybór metody pozostawiam Wam, wszystkie są porównywalnie “skomplikowane”… ;-)
Bezpośrednia edycja tabeli z poziomu phpMyAdmin
Logujemy się do phpMyAdmin jako administrator (root) lub inny użytkownik z odpowiednimi uprawnieniami i przechodzimy do bazy danych, z której korzysta nasz WordPress:
- [baza danych] > tabela “wp_users”
Znajdziecie tu listę wszystkich użytkowników, np.:
Wystarczy przejść do edycji wybranego użytkownika. Nie ma znaczenia, czy będzie to “edytuj” (zalecam), czy “inline edit” – w obu przypadkach będzie pole “tekstowe” o nazwie “user_pass” w którym wpisujemy nowe hasło.
Hasło nie wpisujemy w formie jawnej, tzn. “zwykłego tekstu”, a przetworzonej – w formie skrótu MD5. Odpowiedni generator (online) znajdziecie choćby za pomocą Google…
Przykład dla hasła “123456”:
- Hasło: 123456
- MD5: e10adc3949ba59abbe56e057f20f883e
I to właśnie hasło “zaszyfrowane” w MD5 wpisujemy w polu “user_pass”.
Polecenie (zapytanie) SQL z poziomu phpMyAdmin
Kolejna metoda – również z wykorzystaniem phpMyAdmin, choć trochę w innej formie/formule – to wykonanie odpowiedniego polecenia (zapytania) SQL.
Ty razem również zaczynamy od przejścia (wybrania) do odpowiedniej bazy danych – ale tym razem w górnej belce nawigacyjnej wybieramy “SQL” gdzie znajduje się duże pole tekstowe zatytułowane:
Wykonanie zapytania/zapytań SQL do bazy danych [nazwa bazy danych]
Wpisujemy tu polecenie wg schematu:
UPDATE `wp_users` SET `user_pass` = MD5('nowe_hasło') WHERE `wp_users`.`user_login` = "nazwa_użytkownika";
W naszym przypadku będzie to użytkownik “patryk” i nowe hasło “123456”, a więc polecenie będzie wyglądać tak:
UPDATE `wp_users` SET `user_pass` = MD5('123456') WHERE `wp_users`.`user_login` = "patryk";
Można też wykonać to polecenie, odwołując się do użytkownika po jego ID, a nie po nazwie – ID danego użytkownika znajdziecie w tabeli “wp_users”:
W tym przypadku polecenie ma format:
UPDATE `wp_users` SET `user_pass` = MD5('nowe_hasło') WHERE `wp_users`.`ID` = "ID_użytkownika";
W naszym przypadku użytkownik “patryk” ma ID “8” i nowe hasło – standardowo na potrzeby tego poradnika – “123456”, a więc polecenie będzie wyglądało tak:
UPDATE `wp_users` SET `user_pass` = MD5('123456') WHERE `wp_users`.`ID` = "8";
Oczywiście w każdym przypadku polecenie zatwierdzacie przyciskiem “wykonaj”.
Polecenie (zapytanie) SQL z wiersza poleceń/konsoli
Ostatnia metoda związana z edycją bazy danych to wykonanie kilku poleceń z poziomu wiersza poleceń/konsoli – co od razu eliminuje wszystkich bez własnego serwera, czyli korzystających z hostingu współdzielonego gdzie zazwyczaj nie ma dostępu do konsoli.
Będziemy tu działać podobnie jak w przypadku poradnik “odzyskiwanie dostępu do konta root w MySQL” – oczywiście z pewnymi modyfikacjami, bo nie chcemy resetować dostępu do konta “root” usługi MySQL, a tylko dla odpowiedniego użytkownika WordPressa ;-)
Logujemy się do bazy danych za pomocą polecenia:
mysql -u root -p
Zaczynamy od wyświetlenia wszystkich dostępnych baz danych:
show databases;
Gdy już znamy nazwę bazy (można ją też pobrać z pliku wp-config.php, ale wtedy czemu nie skorzystać z metody z wp-login.php, o której będzie za chwilę) przechodzimy do niej:
use nazwa_bazy_sql;
Pora na listę użytkowników:
SELECT ID, user_login, user_pass FROM wp_users;
W tym momencie mamy już ID użytkownika (ID “8”) oraz nazwę (“patryk”) więc możemy przystąpić do zmiany hasła:
UPDATE wp_users SET user_pass = MD5('123456') WHERE ID=8 LIMIT 1;
Lub:
UPDATE wp_users SET user_pass = MD5('123456') WHERE user_login='patryk' LIMIT 1;
Resetowanie hasła z poziomu FTP (plik wp-login.php)
Kolejna metoda to reset hasła z wykorzystaniem pliku wp-login.php znajdującego się w głównym katalogu WordPressa.
Jest to bardzo prosta i szybka metoda, ale umieszczam ją dopiero za opisem odzyskiwania dostępu do konta z wykorzystaniem SQL, gdyż… do jej zastosowania potrzebujemy znać ID użytkownika – a ID najprościej odczytać właśnie z poziomu phpMyAdmin.
Teoretycznie możecie zaryzykować, i – jeśli nie zmienialiście nic w użytkownikach, i korzystacie z użytkownika założonego bezpośrednio podczas instalacji/konfiguracji WordPressa – uznać, że ID Waszego użytkownika to będzie “1”.
By ustawić nowe hasło dla użytkownika, wystarczy w pliku wp-login.php (lub functions.php), na samym końcu dodać linijkę:
wp_set_password('nowe_nasło',ID_użytkownika);
W przypadku użytkownika z ID “1” i nowego hasła “123456” będzie to wyglądało tak:
wp_set_password('123456',1);
Pamiętajcie tylko by na koniec skasować ten zapis z pliku.
- Mały dron, duże zamieszanie, czyli seria DJI Mini i zabawa w klasy (unijne klasy dla dronów) z EASA i użytkownikami - 1970-01-01
- Opcja “restore_from_flash”, czyli sposób na zapamiętywanie ustawień w ESPHome na układach ESP8266 - 1970-01-01
- Blokowe szablony powiadomień (block notice) w WooCommerce, nawet w klasycznych motywach - 1970-01-01