WordPress Tabellenpräfix wp_ nachträglich in der Datenbank ändern

- Code für PHPMyAdmin & Plugin -

In diesem Artikel erfährst du, wie du das WordPress Tabellenpräfix „wp_“ nachträglich, also auch bei einer bestehenden Installation, ändern kannst, um deine Seite vor SQL-Injections zu schützen.

Jetzt lesen

Bei einer Installation von WordPress wird von Haus das Tabellenpräfix wp_ standardmäßig vergeben. Dass diese Standardeinstellung nicht nur ihre Vorteile hat, wird dem Webseitenbetreiber spätestens bei einer SQL-Injektion durch Hacker bewusst. Dabei kann ein Angreifer Code in die Datenbank schleusen, welcher anschließend ausgeführt wird. Umfangreichere und ausführliche Informationen zu dem Thema findest du auf der Webseite von WordFence.

Da sich wohl niemand freiwillig diesem Risiko aussetzen möchte, findest du nachfolgend eine Anleitung, wie du nachträglich – heißt: bei bereits installiertem WordPress – das Präfix änderst, ohne alle deine Beiträge und generell alles in der Datenbank zu verlieren.

Was ist ein Tabellenpräfix und wieso sollte ich es ändern?

Nehmen wir mal an, es gäbe keine Präfixe und man will in einer Datenbank zwei WordPress-Blogs installieren. Die von WordPress benötigten Tabellen heißen wie folgt (bei älteren Installationen kann es sein, dass noch mehr Tabellen vorhanden sind):

  • wp_commentmeta
  • wp_comments
  • wp_links
  • wp_options
  • wp_postmeta
  • wp_posts
  • wp_terms
  • wp_term_relationships
  • wp_term_taxonomy
  • wp_usermeta
  • wp_users

Würde es kein Präfix geben, oder würde man es beim Standardpräfix wp_ belassen, könnte man pro Datenbank nur eine WordPress-Instanz laufen lassen, da sonst beide Blogs die Tabellen überschreiben würden, weil diese den exakt selben Namen haben. Ein Präfix ist also lediglich eine Voranstellung von Buchstaben und Zahlen vor dem eigentlichen Tabellennamen.

Solltest du tatsächlich zwei WordPress-Seiten in der selben Datenbank installieren wollen, bist du also spätestens bei der zweiten Seite gezwungen, das Präfix zu ändern. Du könntest selbstverständlich einfach ein wp2_ daraus machen, ich empfehle dir jedoch bei jedem neuen Projekt einen aussagekräftigen Namen zu nehmen, damit es übersichtlich und schnell nachvollziehbar bleibt.

Ein weiterer Grund das Präfix zu ändern, ist der bereits oben angesprochene Sicherheitsaspekt. Dadurch, dass das wp_ Standard ist, wissen somit auch potentielle Hacker(-Bots) bescheid, wie die Tabellen in deiner Datenbank heißen. Durch eine SQL-Injektion kann so schädlicher Code ausgeführt werden. Dabei kann der Hacker den kompletten Zugriff auf deine Datenbank erhalten und z.B. deinen Benutzeraccount löschen, sodass du nicht mehr ins Backend kommst und er die volle Kontrolle über deine WordPress-Installation hat. Beide Fälle sind nicht wünschenswert, weshalb man es Außenstehenden so schwer wie möglich machen sollte, an die Datenbankinformationen zu kommen.

Merke: Ändere das Tabellenpräfix am besten noch vor der Installation von WordPress. Dazu öffnest du vor Hochladen aller Files auf deinem Server die Datei wp-config-sample.php und suchst die Zeile mit dem Inhalt:
$table_prefix  = 'wp_';

Sollte Zeile 61 sein (Stand WP 3.8). Hier kannst du dann ein Präfix deiner Wahl bestimmen, indem du das wp_ abänderst.

Die Änderung im Vorfeld der Installation erspart dir nachträglich einiges an Arbeit und verhindert, dass etwas während der Änderung an der Datenbank schief läuft. Solltest du also vorhaben demnächst eine weitere Webseite mit WordPress aufzusetzen, ändere es direkt vor der Installation während du die Daten deiner Datenbank in die wp-config.php einträgst.

Nachträgliche Änderung des Tabellenpräfixes bei bestehenden WordPress-Installationen

Solltest du die Änderung bei der Installation verpasst haben, nicht durchdrehen. Das Präfix lässt sich entweder manuell mit etwas mehr Aufwand oder automatisch durch ein Plugin auch nachträglich noch ändern. Im folgenden beschreibe ich dir beide Möglichkeiten.

Vorsicht: Was du auf jeden Fall machen solltest, unabhängig der gewählten Methode: Backup der Datenbank anlegen! Über PHPMyAdmin kann man seine Datenbank manuell exportieren oder du hast bereits ein Plugin installiert, das automatisch Backups anlegt. Wenn du kein Backup hast, erstelle also umgehend eins und lies anschließend erst weiter.

Präfix manuell über PHPMyAdmin ändern

1) Im ersten Schritt öffnest du die Datei wp-config.php in deinem root-Verzeichnis und suchst bereits oben genannte Zeile:

$table_prefix  = 'wp_';
Hier änderst du das Präfix und speicherst die Datei ab. Es wird empfohlen den Unterstrich am Ende beizubehalten. Heißt dein Blog z.B. „Dingsda“ und du willst deinen Blognamen als Präfix, würde es wie folgt aussehen:
$table_prefix  = 'dingsda_';

Du kannst und solltest aber das Prefix so gestalten, dass man es nur schwer erraten kann – wie ein Passwort. Hierfür kannst du auch Zahlen oder weitere Unterstriche verwenden, sodass durchaus auch die Kombinationen „d1ng5da“ oder „hs88_202“ funktionieren.

Speichere die Datei ab und überschreibe ggf. die alte Version auf deinem Server. Beim Seitenaufruf wirst du sehen, dass die Seite zerschossen ist. Das ist aber kein Problem, da lediglich die Daten in der Datenbank nicht mehr deinen Änderungen entspricht. Deshalb geht es mit Schritt 2 weiter.

2) Jetzt musst du das Präfix in der bereits bestehenden Datenbank ändern. Hierzu loggst du dich in PHPMyAdmin ein, markierst alle gewünschten Tabellen und im Dropdown-Menü wählst du „Tabellenprefix ersetzen“. Im nachfolgenden Fenster musst du lediglich das alte (Standard ist „wp_„) und das neue Präfix (in meinem Beispiel „dingsda_„) eingeben und bestätigen.

PHPMyAdmin Tabellenpräfix ersetzen
Hinweis: Bei älteren Versionen von PHPMyAdmin ist die Option „Tabellenprefix ersetzen“ ggf. nicht verfügbar. Hier musst du jede Tabelle einzeln bearbeiten. Dazu klickst du die Tabelle an und gehst anschließend oben auf „Operationen“. Hier kannst du unter „Tabelle umbenennen in“ das Präfix ändern. Beachte allerdings, dass du das bei jeder Tabelle umsetzen musst.
PHPMyAdmin Tabellprefix manuell ändern
Alternativ kannst du Schritt 2 auch mit einer SQL Query erledigen, falls du dir das zutraust und bereits Erfahrung damit gemacht hast. Nach Login in PHPMyAdmin klickst du oben den Reiter „SQL“ an und gibst folgenden Code ein:
RENAME table `wp_commentmeta` TO `dingsda_commentmeta`;
RENAME table `wp_comments` TO `dingsda_comments`;
RENAME table `wp_links` TO `dingsda_links`;
RENAME table `wp_options` TO `dingsda_options`;
RENAME table `wp_postmeta` TO `dingsda_postmeta`;
RENAME table `wp_posts` TO `dingsda_posts`;
RENAME table `wp_terms` TO `dingsda_terms`;
RENAME table `wp_term_relationships` TO `dingsda_term_relationships`;
RENAME table `wp_term_taxonomy` TO `dingsda_term_taxonomy`;
RENAME table `wp_usermeta` TO `dingsda_usermeta`;
RENAME table `wp_users` TO `dingsda_users`;

Vergiss hier nicht „dingsda“ durch dein Prefix zu ersetzen.

Solltest du zudem eine WordPress Multisite aktiv haben, füge zusätzlich noch nachfolgende Zeilen ein, um die Prefixe aller Tabellen zu ersetzen. Vergiss auch hier nicht „dingsda“ durch dein Prefix zu ersetzen.

RENAME table 'wp_blogs' TO 'dingsda_blogs' ;
RENAME table 'wp_blog-versions' TO 'dingsda_blog_versions' ;
RENAME table 'wp_registration_log' TO 'dingsda_registration_log' ;
RENAME table 'wp_site' TO 'dingsda_site' ;
RENAME table 'wp_sitemeta' TO 'dingsda_sitemeta' ;

Darüber hinaus musst du noch für jede durch ein Plugin angelegte Tabelle den Code entsprechend erweitern, als auch für jede Unterseite in deiner Multisite-Installation.

3) Es ist fast vollbracht, es fehlt nur ein kleiner Schritt. Du musst abschließend nur noch 2 kleine SQL-Befehle ausführen. Gehe dazu in PHPMyAdmin oben auf den Reiter „SQL“ – falls du dich nicht schon dort befindest – und gib diese beiden Befehle ein:

UPDATE dingsda_options SET option_name =
REPLACE(option_name, 'wp_', 'dingsda_');

UPDATE dingsda_usermeta SET meta_key =
REPLACE(meta_key, 'wp_', 'dingsda_');

Vergiss nicht das Präfix „dingsda_“ durch dein selbst gewähltes zu ersetzen – an allen Stellen im Code!

Solltest du mit diesen beiden Befehlen durch sein, hast du es endgültig geschafft! Die Datenbanktabellenpräfixe deiner WordPress-Installation wurden erfolgreich geändert. Jetzt sollte deine Webseite beim Seitenaufruf wieder ganz normal funktionieren.

Download: Acunetix WP Security

[wp-pic type=“plugin“ slug=“wp-security-scan“ layout=“large“ align=“center“ ajax=“yes“ ]

Präfix automatisch über Plugin Acunetix WP Security ändern

Ist dir der manuelle Aufwand zu hoch oder hast du Angst, etwas an der Datenbank kaputtzumachen, besteht auch die Möglichkeit diesen ganzen Vorgang automatisiert über ein Plugin ausführen zu lassen.

Es gibt einige Plugins die das können, aber Acunetix WP Security (früher WP Security Scan) ist meine erste Wahl. Alles was es benötigt, sind Schreibrechte an der Datei wp-config.php. Diese müsstest du unter Umständen manuell per FTP für die Zeit der Umbenennung etwas hochschrauben (666 sollte in den meisten Fällen ausreichend sein).

Navigiere dazu nach erfolgreicher Installation des Plugins zu „WP Security -> Database“. In einer Inputbox kannst du dann dein neu gewähltes Tabellenpräfix eingeben und nach einem Klick auf „Start Renaming“ sind alle damit verbundenen Änderung ausgeführt. Generell ist das Plugin sehr umfangreich und kann dem ein oder anderen sicherlich weiterhelfen. Schaue dich einfach mal ein bisschen in den Einstellungen um.

Acunetix WP Security Tabellenprefix ändern

Falls du über eine Mitgliedschaft bei WPMU Dev verfügst, habe ich abschließend noch eine gute Nachricht für dich: Das Plugin Defender kann ebenfalls automatisch das Tabellenprefix ersetzen und darüber hinaus noch viele weitere Sicherheitsaspekte integrieren.

Solltest du noch Fragen oder Anregungen zu dem Thema haben, hinterlasse doch einfach einen Kommentar.

Autor: Denis Brediceanu
Denis Brediceanu
Digital Brand Strategist und Gründer von WPcorner und Lunatale aus Leidenschaft. Mit WPcorner möchte ich kleinen Unternehmen, Startups und Solopreneuren dabei helfen ihre eigene Website zu erstellen und zu vermarkten.