Tworzenie użytkownika admin z MySQL w WordPressie

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)

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:

PHP
/*
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');
Jak utworzyć użytkownika administratora za pomocą SQL dla WordPressa
SQL Query

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> -p

Zastą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.

Rene Hermenau

Autor: Rene Hermenau

O autorze: René Hermenau jest założycielem WP STAGING. Zajmuje się kopiami zapasowymi WordPressa, środowiskami stagingowymi, migracjami, obsługą baz danych oraz bezpiecznymi procesami wdrażania.