Zmiana prefiksu bazy danych WordPress: 3 proste metody

Aby zmienić prefiks tabel bazy danych WordPress, zedytuj $table_prefix w pliku wp-config.php, zmień nazwę każdej tabeli bazy danych na nowy prefiks i zaktualizuj klucze z prefiksem wewnątrz wp_options oraz wp_usermeta. Metoda z wtyczką jest najszybsza i najbezpieczniejsza dla większości witryn; SQL w phpMyAdmin lub Adminerze daje pełną kontrolę przy większych bazach danych. Zawsze najpierw wykonaj kopię zapasową bazy danych.

Zmiana prefiksu tabel bazy danych WordPress to prosty, ale skuteczny sposób na zwiększenie bezpieczeństwa witryny. Domyślnie WordPress przypisuje prefiks tabel wp_, co czyni go częstym celem hakerów próbujących przeprowadzić ataki typu SQL injection. Modyfikacja tego prefiksu może pomóc chronić bazę danych przed takimi zagrożeniami.

Której metody powinieneś użyć?

Metoda Wymaga Poziom ryzyka Najlepsza dla
Wtyczka dostępu do wp-admin, zapisywalnego wp-config.php Niski Większości witryn; użytkowników nietechnicznych
SQL z phpMyAdmin dostępu do cPanel / phpMyAdmin Średni Hostingów dostarczających phpMyAdmin
SQL z Adminerem dostępu do bazy danych przez Adminer Średni Administracji bazą danych w jednym pliku

Wszystkie trzy zmieniają te same trzy rzeczy: prefiks w wp-config.php, nazwy tabel oraz klucze z prefiksem w wp_options i wp_usermeta. Różnią się jedynie narzędziem, którego używasz do tego celu.

Każde działanie w witrynie WordPress jest powiązane z bazą danych:

How Databases work in WordPress.
This image demonstrates how Databases work in WordPress.

Dlaczego warto zmienić prefiks tabel WordPress?

Zmiana domyślnego prefiksu tabel wp_ pomaga:

  • Zmniejszyć ryzyko ataków typu SQL injection
  • Utrudnić atakującym odgadnięcie nazw tabel
  • Dodać dodatkową warstwę bezpieczeństwa do witryny WordPress

To jednorazowy krok wzmacniający zabezpieczenia. Niestandardowy prefiks sam w sobie nie zatrzyma zdeterminowanego atakującego, ale udaremnia zautomatyzowane skrypty, które zakładają domyślne nazwy wp_ — a te skrypty stanowią większość tego, co atakuje bazę danych WordPress.

Wykonaj kopię zapasową bazy danych przed rozpoczęciem

Before making any changes, create a full backup of your WordPress database using phpMyAdmin, a plugin like WP Staging, or a command-line tool.

Changing the WordPress database prefix can be a critical task, and it’s not always easy. You must ensure you don’t break your website by changing the WordPress table prefix.

Before changing the database prefix, we recommend doing it on a staging site. So you can check thoroughly if the update works and can safely push your staging site to the production site without any risk of data loss after changing the DB prefix.

A staging site is a copy of your live site, so you can do different changes/testing and make those changes live with a single click.

You can create a free staging site with WP STAGING.

Podczas instalacji WordPressa jednym z najczęstszych błędów jest zapomnienie o zmianie prefiksu bazy danych, co pozostawia otwartą furtkę dla zautomatyzowanych ataków SQL injection. Podjęcie środków zapobiegawczych jest kluczowe, aby chronić witrynę przed włamaniem. Zmieniony prefiks dotyka każdej tabeli, więc aktualna kopia zapasowa jest twoją siatką bezpieczeństwa, gdyby któryś krok poszedł nie tak — możesz wykonać kopię zapasową i przywrócić witrynę WordPress w kilka minut przed wprowadzeniem jakiejkolwiek zmiany.

Jak zmienić prefiks bazy danych WordPress?

Postępuj zgodnie z tym przewodnikiem krok po kroku, aby bezpiecznie zmienić nazwę prefiksu bazy danych WordPress. Istnieją trzy opcje:

  1. Użyć wtyczki do zmiany prefiksu tabel bazy danych.
  2. Zmienić nazwę prefiksu zapytaniem SQL w Adminerze.
  3. Zmienić nazwę prefiksu zapytaniem SQL w phpMyAdmin.

Metoda 1: Zmiana prefiksu tabel za pomocą wtyczki

First, we recommend you take a backup of your website (either with the backup feature of WP STAGING | PRO or manually through CPanel) to avoid any mishappening caused by installing a plugin.

Wtyczka to najszybsza i najmniej ryzykowna opcja, ponieważ edytuje wp-config.php, zmienia nazwy tabel oraz aktualizuje za ciebie klucze z prefiksem w option i usermeta. Oto kroki:

  1. Przejdź do kokpitu WordPress.
  2. Przejdź do zakładki „Wtyczki" i kliknij „Dodaj nową".
  3. Wyszukaj Brozzme DB Prefix & Tools Add-ons w repozytorium wtyczek WordPress.
  4. Kliknij przycisk Zainstaluj teraz, aby zainstalować Brozzme DB Prefix & Tools Add-on na swojej witrynie.
  5. Kliknij przycisk aktywuj, aby aktywować tę wtyczkę.
updatewp database prefix via plugin

Wtyczka jest aktywowana i możemy od razu zacząć pracę nad zmianą prefiksu bazy danych WordPress.

  1. Przejdź do Narzędzia i kliknij DB Prefix. Możesz zobaczyć aktualny prefiks swojej bazy danych i zmienić go na nowy.
wordpress database prefix

Jeśli twój plik wp-config.php nie jest zapisywalny, otrzymasz powiadomienie o błędzie, ponieważ wtyczka nie może zmienić prefiksu bazy danych w pliku wp-config.php. Popraw uprawnienia pliku (lub edytuj wp-config.php ręcznie, jak pokazano w Metodzie 2) i spróbuj ponownie.

Kończysz, klikając przycisk „Change DB Prefix".

Metoda 2: Zmiana prefiksu za pomocą SQL w Adminerze

Krok 1: Zmień prefiks tabel w wp-config.php

Zmień wartość prefiksu tabel w pliku wp-config.php znajdującym się w głównym folderze katalogu WordPress.

Aby edytować wp-config.php, zaloguj się przez FTP lub SFTP, używając FileZilla lub dowolnego innego klienta FTP. Dane FTP znajdziesz w cPanel (w zależności od hostingu — niektóre używają niestandardowego panelu zamiast cPanel). Zobacz przewodnik WordPress dotyczący edycji wp-config.php, aby uzyskać pełne informacje.

Wyszukaj tę linię w pliku wp-config.php:

$table_prefix = 'wp_testing123_';

 
This picture shows where the table prefix can be found in the wp-config.php file.
It should look like this in the wp-config file:
This picture shows how the updated line looks like.
That is what the updated line should look like.

Prefiks może zawierać tylko cyfry, litery i znaki podkreślenia. Po wprowadzeniu zmiany w wp-config.php zapisz go.

Krok 2: Zmień nazwy tabel bazy danych

Jeśli używasz Adminera, znajdź przycisk polecenia SQL w lewym górnym rogu i wybierz go.

This picture shows a screenshot of where to find the SQL command button on Adminer
Where to find the SQL command button

Poniższe zapytanie SQL zmienia prefiks tabel WordPress w istniejącej witrynie. Zaktualizuj właściwości SET zgodnie ze swoimi potrzebami:

  • nazwa bazy danych
  • oldprefix_
  • newprefix_

Oto to zapytanie SQL:

sql
SET @database  = "<strong>databasename</strong>";
SET @oldprefix = "<strong>oldprefix_</strong>";
SET @newprefix = "<strong>newprefix_</strong>";
 
SELECT
    concat(
        "RENAME TABLE ",
        TABLE_NAME,
        " TO ",
        replace(TABLE_NAME, @oldprefix, @newprefix),
        ';'
    ) AS "SQL" FROM information_schema.TABLES WHERE TABLE_SCHEMA = @database;

Po dostosowaniu zapytania otrzymasz coś takiego:

A SQL query to update the WordPress database Prefix
Use this SQL query to update the WordPress database Prefix

Wykonaj to zapytanie. Generuje ono drugi zestaw instrukcji RENAME, taki jak ten:

RENAME oldprefix_options to newprefix_options;
RENAME oldprefix_users to newprefix_users;

Skopiuj te instrukcje i wykonaj je, aby zmienić nazwy tabel na nowe. (RENAME TABLE to standard MySQL — zobacz dokumentację RENAME TABLE w MySQL.)

Use this SQL query to rename WordPress database tables
Use this SQL query to rename WordPress database tables

Krok 3: Zmień prefiks w tabeli usermeta

Po zmianie nazw tabel zastąp wartości z prefiksem w *_usermeta i *_options poniższymi zapytaniami. Nie zapomnij zaktualizować podświetlonych ciągów.

Aby zastąpić wartości w tabeli *_usermeta, użyj tego zapytania:

SQL
UPDATE `newprefix_usermeta`
SET meta_key = REPLACE(meta_key, 'oldprefix_', 'newprefix_')
WHERE meta_key LIKE 'oldprefix_%';
Use this SQL query to rename the table prefix in table wp_usermeta
Use this SQL query to rename the prefix in table wp_usermeta

Krok 4: Zaktualizuj prefiks w tabeli wp_options

Ostatnim krokiem jest zastąpienie wartości w tabeli *_options. Użyj tego zapytania:

SQL
UPDATE wp_options SET option_name = replace(option_name, 'wp_', 'new_') WHERE option_name LIKE 'wp_%';
This picture shows the sql queries to replace the values in the options table
Execute this query to replace the values in the options table.

To wszystko, jeśli chodzi o metodę z Adminerem.

Metoda 3: Zmiana prefiksu za pomocą SQL w phpMyAdmin

Krok 1: Zmień prefiks tabel w wp-config.php

Zmień prefiks tabel w pliku wp-config.php znajdującym się w głównym folderze katalogu WordPress.

Aby edytować wp-config.php, zaloguj się przez FTP lub SFTP, używając FileZilla lub dowolnego innego klienta FTP. Dane FTP znajdziesz w cPanel (w zależności od hostingu — niektóre używają niestandardowego panelu zamiast cPanel).

Znajdź tę linię w pliku wp-config.php:

$table_prefix = 'wp_testing123_';

Prefiks może zawierać tylko cyfry, litery i znaki podkreślenia. Po wprowadzeniu zmiany w wp-config.php zapisz go.

Krok 2: Zmień nazwy tabel bazy danych

Jeśli używasz cPanel, otwórz phpMyAdmin. Po lewej stronie zobaczysz swoje bazy danych. Jeśli nie używasz cPanel, skontaktuj się z hostingiem, aby uzyskać dostęp do bazy danych swojej witryny. Dokumentacja phpMyAdmin obejmuje dostęp i logowanie, jeśli dopiero zaczynasz.

Wybierz bazę danych, której prefiks ustawiłeś w wp-config.php, a następnie wykonaj następujące czynności:

  1. Wybierz bazę danych.
  2. Zaznacz pole wyboru „Zaznacz wszystkie", aby wybrać wszystkie tabele.
  3. Otwórz listę rozwijaną i wybierz „Zamień prefiks tabel".
change wordpress table prefix
  1. Zastąp stary prefiks nowym prefiksem.
update wordpress database prefix

Po wprowadzeniu nowego prefiksu kliknij Kontynuuj, aby zmienić prefiks na każdej tabeli.

Krok 3: Zmień prefiks w tabeli options

Wyszukaj prefiks wp_ w tabeli options za pomocą tego zapytania:

SQL
SELECT * FROM `wp_testing123_options` WHERE `option_name` LIKE '%wp_%'

Zastąp każdy stary prefiks nowym prefiksem.

Replace old table prefix with new prefixes by using SQL query.

Krok 4: Zaktualizuj prefiks w tabeli usermeta

Wyszukaj wp_ jako prefiks w tabeli usermeta i zastąp go za pomocą tego zapytania:

SQL
SELECT * FROM `wp_testing123_usermeta` WHERE `meta_key` LIKE '%wp_%'
database prefix of wordpress site

Alternatywnie, jeśli chcesz zmienić prefiks bazy danych za pomocą jednego zapytania, możesz użyć tego jednego zapytania na istniejącej witrynie WordPress:

SQL
SET @database = "database_name";
SET @old_prefix = "old_prefix_";
SET @new_prefix = "new_prefix_";

SELECT concat "RENAME TABLE ", TABLE_NAME, " TO", replace(TABLE_NAME, @old_prefix, @new_prefix),';') AS "SQL" FROM information_schema.TABLES WHERE TABLE_SCHEMA = @database;

To zapytanie tworzy drugie zapytanie, które zmienia nazwy wszystkich prefiksów tabel na nowe. Po jego uruchomieniu nadal musisz zastąpić wartości z prefiksem w wp_usermeta i wp_options poniższymi zapytaniami:

SQL
UPDATE `wp_testing123_usermeta`
SET meta_key = REPLACE(meta_key, 'wp_', 'new_')
WHERE meta_key LIKE 'wp_%';

UPDATE wp_options SET option_name = replace(option_name, 'wp_', 'new_') WHERE option_name LIKE 'wp_%';

To wszystko — to jest ręczna metoda zmiany prefiksu bazy danych.

Zablokowany dostęp do wp-admin po zmianie nazwy prefiksu?

To zdecydowanie najczęstsza awaria przy zmianie nazwy prefiksu tabel WordPress. W zgłoszeniach do pomocy technicznej WP STAGING niemal zawsze sprowadza się to do jednego klucza z prefiksem, którego nazwa została zmieniona w tabelach, ale został pominięty wewnątrz danych. Przejdź przez tę listę kontrolną po kolei:

  1. Czy zaktualizowałeś wp-config.php? Wartość $table_prefix musi dokładnie odpowiadać nowym nazwom tabel. Niezgodność tutaj to typowa przyczyna komunikatu „Błąd podczas nawiązywania połączenia z bazą danych" lub pętli logowania.
  2. Czy zaktualizowałeś klucz capabilities w wp_usermeta? Wiersz wp_capabilities musi zostać zmieniony na newprefix_capabilities. Jeśli nadal używa starego prefiksu, WordPress nie może odczytać twoich ról i blokuje ci dostęp.
  3. Czy zaktualizowałeś klucz user level w wp_usermeta? Zmień nazwę wp_user_level na newprefix_user_level z tego samego powodu.
  4. Czy zaktualizowałeś klucz user roles w wp_options? Zmień nazwę wp_user_roles na newprefix_user_roles. WordPress odczytuje stąd definicje ról podczas logowania.

Klucze do zweryfikowania, według tabel:

W tabeli wp_options:

  • wp_user_roles

W tabeli wp_usermeta:

  • wp_capabilities
  • wp_user_level

Po zmianie nazw tych kluczy tak, aby używały tego samego prefiksu co twoje tabele, będziesz mógł zalogować się ponownie. Jeśli nadal jesteś zablokowany, przywróć kopię zapasową wykonaną na początku i powtórz kroki.

Najczęściej zadawane pytania

Czy bezpieczna jest zmiana prefiksu bazy danych WordPress na działającej witrynie?

Jest bezpieczna, jeśli najpierw wykonasz kopię zapasową bazy danych i zaktualizujesz każde miejsce, w którym pojawia się prefiks: wp-config.php, nazwy tabel oraz klucze z prefiksem w wp_options i wp_usermeta. Metoda z wtyczką obsługuje to wszystko automatycznie, dlatego jest opcją o najniższym ryzyku. Jeśli możesz, przetestuj najpierw na kopii staging.

Dlaczego po zmianie otrzymuję „Błąd podczas nawiązywania połączenia z bazą danych"?

$table_prefix w wp-config.php nie pasuje już do nazw twoich tabel. Otwórz wp-config.php i potwierdź, że prefiks dokładnie odpowiada zmienionym nazwom tabel, łącznie z końcowym znakiem podkreślenia.

Czy muszę zmieniać prefiks na istniejącej witrynie, czy tylko podczas instalacji?

Możesz to zrobić w dowolnym momencie. Zmiana podczas instalacji jest najprostsza, ponieważ nie ma żadnych danych do migracji, ale trzy powyższe metody działają również na istniejącej witrynie.

Czy niestandardowy prefiks może uszkodzić wtyczki?

Może, jeśli wtyczka na sztywno koduje wp_ zamiast odczytywać skonfigurowany prefiks WordPressa. Dobrze napisane wtyczki używają prefiksu zgłaszanego przez WordPress, więc działają dalej. Po zmianie przejrzyj swoje kluczowe wtyczki, aby to potwierdzić.

Podsumowanie

Zmiana prefiksu tabel WordPress to prosty, ale skuteczny środek bezpieczeństwa. Niezależnie od tego, czy używasz phpMyAdmin, wtyczki czy skryptów SQL, zawsze wykonaj kopię zapasową bazy danych przed wprowadzeniem zmian. Ta drobna modyfikacja może znacznie przyczynić się do zabezpieczenia twojej witryny WordPress.

Powiązane artykuły

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.