Trzy sposoby na przywrócenie dostępu administratora WordPressa bez kokpitu: mu-wtyczka, która tworzy konto przy załadowaniu strony (niepotrzebne żadne narzędzie bazy danych), dwa zapytania SQL w phpMyAdmin lub Adminer, albo te same zapytania SQL z poziomu wiersza poleceń MySQL.
| Twoja sytuacja | Najlepsza metoda |
|---|---|
| Tylko dostęp przez FTP lub menedżer plików — bez narzędzia bazy danych | Opcja 1 (mu-wtyczka) |
| Dostęp do bazy danych przez phpMyAdmin, Adminer lub cPanel | Opcja 2 (zapytanie SQL) |
| Dostęp SSH do serwera | Opcja 3 (CLI MySQL) |
Dlaczego mógłbyś potrzebować dodać użytkownika administratora przez MySQL
Dostęp administratora może zniknąć z kilku powodów: nieudana migracja, która przepisuje wiersze wp_usermeta, nieudana zmiana roli użytkownika, wtyczka uszkadzająca uprawnienia lub przypadkowo usunięte konto. W zgłoszeniach do pomocy technicznej WP STAGING najczęstszą przyczyną zablokowanego administratora jest nieudana migracja, która pomieszała przypisanie roli w wp_usermeta — oto jak to naprawić.
Utworzenie użytkownika administratora bezpośrednio w bazie danych jest bezpieczne i odwracalne. Nic nie jest usuwane — wstawiasz tylko nowe wiersze. System użytkowników WordPressa odczytuje z tych tabel przy każdym logowaniu, więc nowe konto jest dostępne w chwili wykonania zapytań.
Potrzebujesz usługi przywracania użytkownika administratora WordPressa? Zdobądź WP Staging Pro a jeden z naszych deweloperów przywróci dla Ciebie użytkownika administratora WordPressa!
Zanim zaczniesz: znajdź prefiks tabel swojego WordPressa
Wszystkie trzy metody wymagają znajomości prefiksu tabel bazy danych WordPressa. Domyślny to wp_, ale wielu hostów lub narzędzi migracyjnych go zmienia (na przykład wpstg0_ lub abc_).
Otwórz wp-config.php w katalogu głównym witryny i znajdź wiersz:
$table_prefix = 'wp_';
Zastąp wp_ w każdym przykładzie SQL poniżej wartością, którą tam znajdziesz. Prefiks dotyczy również wartości meta_key — jeśli Twój prefiks to wpstg0_, kluczem uprawnień jest wpstg0_capabilities, a nie wp_capabilities.
Opcja 1: Dodaj administratora WordPressa za pomocą mu-wtyczki (nie jest potrzebny dostęp do bazy danych)
Contents
- Dlaczego mógłbyś potrzebować dodać użytkownika administratora przez MySQL
- Zanim zaczniesz: znajdź prefiks tabel swojego WordPressa
- Opcja 1: Dodaj administratora WordPressa za pomocą mu-wtyczki (nie jest potrzebny dostęp do bazy danych)
- Opcja 2: Dodaj administratora WordPressa przez phpMyAdmin lub Adminer
- Opcja 3: Dodaj administratora WordPressa w wierszu poleceń MySQL
- Rozwiązywanie problemów: jeśli nowe konto nie działa
- Po przywróceniu dostępu: wzmocnij logowanie do WordPressa
Jeśli masz dostęp przez FTP lub Menedżer plików cPanel, ale nie masz narzędzia bazy danych, wtyczka obowiązkowego użytku (mu-wtyczka) to najszybsza droga. Utwórz nowy plik w wp-content/mu-plugins/add-admin.php i wklej ten kod:
/*
Plugin Name: Add admin account
Description: This adds an admin account into database
Author: WP STAGING
Version: 1.0
Author URI: https://wp-staging.com
*/
add_action('wp_loaded', function() {
if (isset($_GET['add-admin'])) {
$inserted = wp_insert_user([
'user_pass' => 'password',
'user_login' => 'username',
'user_email' => 'test@example.com',
'role' => 'administrator'
]);
var_dump($inserted);
exit;
}
});Zmień user_pass, user_login i user_email na pożądane wartości. Otwórz swoją witrynę pod adresem https://example.com/?add-admin, aby uruchomić tworzenie konta, a następnie zaloguj się przy użyciu nowych danych logowania.
Usuń plik mu-wtyczki natychmiast po zalogowaniu. Pozostawienie go na miejscu oznacza, że każdy, kto zna adres URL, może utworzyć konto administratora w Twojej witrynie.
Opcja 2: Dodaj administratora WordPressa przez phpMyAdmin lub Adminer
Otwórz swoje narzędzie bazy danych — Adminer lub phpMyAdmin — i przejdź do panelu zapytań SQL. Wykonaj następujące trzy zapytania po kolei, aktualizując prefiks i dane logowania, aby pasowały do Twojej witryny.
Ważne: Jeśli masz inny prefiks tabel zamiast wp_, musisz również zmienić prefiks tabel!
Krok 1 — Wstaw wiersz użytkownika. Zastąp wybraną nazwę użytkownika, hasło, wyświetlaną nazwę i adres e-mail.
INSERT INTO `wp_users` (`user_login`, `user_pass`, `user_nicename`, `user_email`,
`user_status`)
VALUES ('wpstaging', MD5('password123'), 'Rene Hermenau', 'support@domain.com', '0');Krok 2 — Przypisz uprawnienie roli administratora.
INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`)
VALUES (NULL, (Select max(id) FROM wp_users),'wp_capabilities', 'a:1:{s:13:"administrator";s:1:"1";}');Krok 3 — Ustaw starszy poziom użytkownika (sprawdzany przez starsze motywy i wtyczki).
INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, (Select max(id) FROM wp_users), 'wp_user_level', '10');
Gdy wszystkie trzy zapytania zakończą się powodzeniem, przejdź do wp-login.php i zaloguj się przy użyciu nowych danych logowania.
Jeśli Twój prefiks nie jest wp_, zastąp go w każdym wystąpieniu wp_users, wp_usermeta, wp_capabilities i wp_user_level. Na przykład przy prefiksie wpstg0_ nazwy tabel stają się wpstg0_users i wpstg0_usermeta, a klucz meta uprawnień staje się wpstg0_capabilities.
Opcja 3: Dodaj administratora WordPressa w wierszu poleceń MySQL
Jeśli masz dostęp SSH, wiersz poleceń MySQL daje ten sam wynik co Opcja 2, bez potrzeby narzędzia opartego na przeglądarce. Instrukcje SQL są identyczne — różni się tylko interfejs.
Krok 1 — Połącz się z serwerem MySQL.
mysql -u <username> -pZastąp <username> swoim użytkownikiem MySQL. Zostaniesz poproszony o wprowadzenie hasła.
Krok 2 — Wybierz bazę danych WordPressa.
USE <database_name>;Zastąp <database_name> nazwą bazy danych z wp-config.php (stała DB_NAME).
Krok 3 — Wstaw nowy wiersz użytkownika.
INSERT INTO wp_users (user_login, user_pass, user_nicename, user_email, user_status)
VALUES ('<username>', MD5('<password>'), '<display_name>', '<email>', '0');Zastąp <username>, <password>, <display_name> i <email> swoimi wartościami. Funkcja MD5() szyfruje hasło; użyj tutaj silnego hasła i zmień je później z poziomu kokpitu WordPressa.
Krok 4 — Uzyskaj ID nowego użytkownika.
SELECT ID FROM wp_users WHERE user_login = '<username>';Zanotuj zwróconą liczbę całkowitą — potrzebujesz jej w następnym kroku.
Krok 5 — Przypisz rolę administratora.
INSERT INTO wp_usermeta (user_id, meta_key, meta_value)
VALUES (<user_id>, 'wp_capabilities', 'a:1:{s:13:"administrator";s:1:"1";}');Zastąp <user_id> identyfikatorem zwróconym w Kroku 4.
Utworzyłeś teraz nowego użytkownika administratora WordPressa w wierszu poleceń MySQL. Zaloguj się do kokpitu przy użyciu wybranej nazwy użytkownika i hasła.
Rozwiązywanie problemów: jeśli nowe konto nie działa
Jeśli nadal nie możesz się zalogować albo konto pojawia się w Użytkownikach, ale pokazuje rolę Subskrybenta zamiast Administratora, przejdź przez te trzy przyczyny po kolei.
Nieprawidłowy prefiks tabel
Najczęstszym błędem jest wykonanie zapytań z wp_, gdy witryna używa niestandardowego prefiksu. Wykonaj ponownie zapytania INSERT i UPDATE, podstawiając prawidłowy prefiks z wp-config.php. Wartość meta_key również zależy od prefiksu: wp_capabilities staje się <prefiks>capabilities, na przykład wpstg0_capabilities.
Brakujący wiersz wp_usermeta
WordPress odczytuje wp_capabilities z wp_usermeta, aby określić rolę przy każdym logowaniu. Jeśli Krok 2 (Opcja 2) lub Krok 5 (Opcja 3) zawiódł po cichu — na przykład dlatego, że podzapytanie user_id zwróciło NULL — konto istnieje w wp_users, ale nie ma roli. Wykonaj ponownie zapytanie INSERT INTO wp_usermeta i sprawdź, czy wiersz pojawia się w tabeli, zanim spróbujesz zalogować się ponownie.
Konflikt zduplikowanego adresu e-mail
Jeśli istniejące konto ma już podany przez Ciebie adres e-mail, INSERT się powiedzie, ale WordPress może kierować próby logowania do starszego konta. Najpierw wykonaj SELECT user_email FROM wp_users, aby potwierdzić, że e-mail nie jest już w użyciu, albo wybierz unikalny adres e-mail do odzyskiwania.
Po przywróceniu dostępu: wzmocnij logowanie do WordPressa
Gdy wrócisz do kokpitu, poświęć kilka minut, aby zapobiec ponownemu zablokowaniu:
- Włącz uwierzytelnianie dwuskładnikowe — każda renomowana wtyczka 2FA sprawia, że atak brute-force lub przypadkowe usunięcie konta o wiele rzadziej zostawi Cię zablokowanego na zewnątrz.
- Skontroluj role użytkowników — przejdź do Użytkownicy → Wszyscy użytkownicy i potwierdź, że nie ma nieoczekiwanych kont administratora, w tym konta odzyskiwania, które właśnie utworzyłeś.
- Zaktualizuj adres e-mail konta odzyskiwania lub usuń je, gdy potwierdzisz, że Twoje główne konto administratora działa poprawnie.
- Usuń każdą mu-wtyczkę utworzoną na potrzeby tego odzyskiwania z
wp-content/mu-plugins/natychmiast po odzyskaniu dostępu. - Wykonaj pełną kopię zapasową przed każdą przyszłą operacją na bazie danych, aby mieć czysty punkt przywracania.
Mam nadzieję, że ten artykuł pomógł Ci zrozumieć, jak ręcznie utworzyć nowego użytkownika administratora w bazie danych. Skontaktuj się z nami, jeśli nadal masz pytania lub jeśli coś jest niejasne.