SELECT * FROM // c[_]~~

Avatar

ein IT-Blog, mehr nicht!

WordPress: Du hast nicht ausreichend Rechte, um auf diese Seite zuzugreifen.

Die Fehlermeldung “Du hast nicht ausreichend Rechte, um auf diese Seite zuzugreifen.” ärgerte mich heute Vormittag ein wenig, nachdem ich einen WordPress-Blog ein wenig umstrukturiert hatte. Aber von vorn:

Auf meinem Webspace liegen zur Zeit zwei Blogs in unterschiedlichen Verzeichnissen mit unterschiedlichen Datenbanktabellen. Beim anlegen der beiden Blogs habe ich nicht wirklich auf eine eindeutige Struktur geachtet, was zur Folge hatte, dass Blog #1 im Verzeichnis ‘/blog‘ lag und den Tabellen-Präfix ‘wp_‘ nutze und #2 mit dem Präfix ‘blog_‘ konfiguriert war und im Verzeichnis ‘/wp‘ lag. Dieser Zustand war etwas verwirrend (verständlicher Weise), gerade wenn es darum ging ein Plugin anzupassen oder DB-Tabellen aufzuräumen. Außerdem konnte ich immer nicht richtig zuordnen um welches Blog es sich bei dem entsprechende Verzeichnis handelte. Also kurzerhand die Verzeichnisse entsprechend der Domain umbenannt und die Domain-Weiterleitungen angepasst. - Kein Problem bis dahin. - Anschließend noch einen aussagekräftigen Präfix für die Tabellen vergeben, die Datenbank und die Datei config.php des jeweiligen Blogs angepasst. - Auch kein Problem, zumindest kein offensichtliches.

Bis ich mich wieder ins Backend einloggen wollte und mich die o.g. Fehlermeldung anlachte! Ein Blick in die Datenbank, genauer in die Tabellen new_usermeta bzw. new_options sorgte aber glücklicherweise relativ schnell für Aufklärung (new_ für das neue Präfix, welches real natürlich nicht ‘new’ heißt). Das Attribut meta_key (new_usermeta) bzw. option_name (new_options) enthielten Werte die noch mit dem alten Tabellen-Präfix bestückt waren und ich bei meinen Änderungen nicht berücksichtigte. Mit Hilfe der zwei folgenden Abfragen lassen sich die Werte schnell herausfiltern.

SELECT * FROM new_options WHERE option_name LIKE 'old_%';

bzw.

SELECT * FROM new_usermeta WHERE meta_key LIKE 'old_%';

Diese können nun händisch angepasst werden. Oder als Alternative kann man, etwas komfortabler, die folgende Query verwenden.

UPDATE new_options SET option_name = REPLACE(option_name, 'old_', 'new_');

bzw.

UPDATE new_usermeta SET meta_key = REPLACE(meta_key, 'old_', 'new_');

Nach dem Update klappt es dann auch wieder mit dem Einloggen in WordPress.
Hinweis: Vor der Änderung unbedingt die Datenbank sichern, falls irgend etwas gegen den Baum läuft…

Jan Häußler Von >>
Abgelegt unter >>
Tags >>
  • insgesamt: 8390 //   heute: 7 //   zuletzt: 11. March 2010
Gelesen >>
47 Comments, Comment or Ping
  1. Florian Horváth

    Danke!

  2. Gern geschehen!

  3. Hallo Jan,

    ich hatte auch meine Präfixe umgenannt. Anfangs lief noch alles super, bis ich die o.g. Meldung erhielt. Da ich gerade nicht zu Hause bin, kann ich es auch noch nicht testen, aber vom Ansatz her scheint es logisch zu sein.

    Ich werde heute Abend mal testen und mich dann noch mal melden. Erst mal vielen Dank für die Info!

    Burkhard

  4. So testet und berichtet :)

  5. Hallo Jan,

    kannst Du mir bitt noch etwas auf die Sprünge helfen? Ich hatte gestern das Präfix der DB-Tabellen angepasst. Die wp-config.php habe ich natürlich auch angepasst. Die Präfixe hießen vorher wp_bu_01_ und ich habe sie in wp_bww_ umbenannt. Alle Zugriffe passen, nur das ich mich als Admin nicht mehr einloggen kann.

    Ich kann Dir bzgl new_usermeta und new_options nicht folgen. Bei mir gibt es logischerweise wp_bww_usermeta und wp_bww_options.

    Wo genau muss ich eingreifen? Die Datenbanken verwalte ich mit phpMyAdmin.

    Danke!
    Burkhard

  6. Jetzt muss ich doch glatt meinen eigenen Post nochmal lesen :) Also probiere mal folgendens. (Bitte mit einem DB-update vorher, damit du zur Not das wieder einspielen kannst.)

    UPDATE wp_bww_options SET option_name = REPLACE(option_name, ‘wp_bu_01_’, ‘wp_bww_’);

    und

    UPDATE wp_bww_usermeta SET meta_key = REPLACE(meta_key, ‘wp_bu_01_’, ‘wp_bww_’);

    Das sind die obigen Statements auf deine Tabellenstruktur angepasst. Wenn es erfolgreich ist, sollt dir eine Anzahl x von geänderten Einträge gemeldet werden und das Login wieder funktionieren.

  7. Hallo Jan,

    danke für Deine schnelle Antwort! Leider ohne Erfolg. Nach dem Ausführen des Befehls bekomme ich die Meldung: Betroffene Datensätze: 0 (die Abfrage dauerte 0.0003 sek). Anschließend ist alles wie gehabt :-(

    Mein Problem u.a.: was genau passt i.d. Tabelle nicht? Kann ich das auch “per Hand” editieren? Ich weiß immer gerne was ich mache! Mit SQL kenne ich mich leider nur wenig aus.

    Vielen Dank!
    Burkhard

    PS: Du hattest anfangs geschrieben, dass Du beim Blick in die Datenbank das Problem sofort erkannt hattest. Hattest Du die fehlerhafte Stelle gesehen (dann will ich sie auch gerne sehen!) oder hattest Du beim Blick in die Datenbank nur die Idee, dass hier prinzipiell das Problem liegen müsste?

  8. Guten Morgen,

    das Problem bei WP ist, dass die Optionen (Datensätze in der Tabelle wp_options) und ein paar Userdaten (Datensätze in der Tabelle wp_usermeta) samt dem vergebenen Präfix bei der Installation angelegt werden. Benennst du deine Tabellen um, tritt o.g. Problem auf, insbesondere wenn die Tabelle wp_usermeta beim Einloggen abgefragt wird und Datensätze mit wp_* gesucht, aber nicht gefunden werden. Warum einige Datensätze jetzt mit dem Tabellepräfix vergeben sind, kann ich dir auch nicht genau sagen, dazu müsste man im WP-Core rumwühlen aber das für die Lösung meines Problems nicht notwendig.

    Durchsuche deine Tabellen mal nach Datensätze die mit deinem alten Präfix anfangen (wp_bu_01_), dazu kannst du die ersten beiden Abfrage verwenden (oder die Tabellen manuell durchblättern ;):

    SELECT * FROM wp_bww_options WHERE option_name LIKE ‘wp_bu_01_%’;
    SELECT * FROM wp_bww_usermeta WHERE meta_key LIKE ‘wp_bu_01_%’;

    (einzeln ausführen)
    Werden damit Daten gefunden, kannst du sie auch manuell editiert. Wirst du nicht fündig… öhm. Tja warten wirs mal ab :D

  9. Hallo Jan,

    danke für Deinen “vollen Einsatz”!!! Es war mein Fehler (diese Feststellung trifft man ja leider oft nach vergeblichen Maßnahmen). Ich hatte Die das falsche Präfix genannt. Bisher hieß das Präfix “wp_bu02″ und nicht “wp_bu_01″. Daher konnte der Befehl auch keine Daten ändern :-(

    Ich hatte die Datensätze exportiert und mir dann mit einem Editor durchsucht. Dabei kam es dann zu Tage. Da ich gerade nicht auf meine Datenbanken zugreifen kann, kann ich es erst heute Abend testen - ich vermute, dass es dann funzt. Noch eine Frage: Kann ich die SQL-DB mit einem normalen Texteditor editieren und dann wieder importieren? Oder muss dabei etwas beachtet werden?

    Danke!!!

  10. … es funzt! Danke!

  11. Freut mich! Gern geschehen.

  12. JayL

    DANKE für den Post, er hat mit den Abend gerettet!

  13. DANKE DANKE DANKE!
    :D

  14. Jan

    Immer wieder gern! ;)

  15. Jan, Du rockst!

  16. Herzlichen Dank für die Lösung - danach gesucht, hier gefunden!

  17. Vielen Dank, du hast mir den Tag gerettet!!! :-)

  18. Vielen Dank! Die Anleitung war sehr hilfreich!

  19. Hey Jan,

    hat sofort geklappt - DANKE!

    Finde es immernoch ‘n bissle umständlich wenn man von der offline- zur online-DB hin und her exportiert.

    Weiter so.

    Gruß

  20. WORDSEPP

    SEHR GUT - HAT MIR SEHR GEHOLFEN

  21. Super, genau danach habe ich gesucht. Vielen Dank dafür…

  22. Vielen Dank für den Tip. Hat super geklappt!

  23. Rocko

    Wo genau müssen diese phpMyAdmin-Befehle eingegeben werden? Wenn ich das unter “Suchen” mache, erhalte ich Ergebnisse, die den alten “wp_”-Anhang gar nicht aufführen.

  24. Rocko

    Ah, man muss die Datenbank auswählen und zum Reiter “SQL” wechseln. Entschuldigt die Störung (könnte aber für andere relevant sein).

  25. Besten Dank für dieses Posting - das hat doch glatt meinen Tag gerettet :-)

    Lg,

    Heiko

  26. Vielen Dank! Hätte mich sonst wohl Stunden gekostet, zumal das alte Prefix standardmäßig auf “wp_” stand und ich nicht so schnell auf die Idee gekommen wäre, dass sich diese Werte innerhalb der Tabellen auf das Prefix beziehen, zumal es sich nicht um Tabellennamen handelt. Das haben die Leute bei WP nicht ganz sauber gelöst.

  27. Daniel

    Klasse, vielen Dank! Problem gelöst, ruhige Nacht gesichert.

  28. Hallo,

    ich habe jetzt auch das Problem damit ich nach dem Einloggen folgenden Text gezeigt bekomme: Du hast nicht ausreichend Rechte, um auf diese Seite zuzugreifen.

    Bei mir liegt es an diesem WP Security Scan Plugin ich habe es dann zuerst per FTP-Uploader wieder runtergenommen aber ich habe immernoch die Fehlermeldung bekommen.

    Leider habe ich gar keine Erfahrungen mit Änderungen diretk im MySQL Datenbanken Bereich.

    Gibts denn auch eine Anleitung was ich tun muss für ganz Unerfahrene??

    LG

  29. Joe

    Besten Dank! Wollte “eben mal schnell” WP auf dem Server installieren und hatte die Tabellen-Präfixe geändert. War dann wegen der Meldung kurz vorm durchdrehen…

  30. Vielen Dank, genau das was ich gerade gesucht hatte :)

  31. Nina

    Super, vielen Dank!
    Bin schon fast wahnsinnig geworden weil ich mir einfach nicht erklären konnte, warum ich mich plötzlich nicht mehr einloggen konnte. DANKE :-)

  32. Marcel

    Sensationell ! Vielen vielen Dank für diesen Tipp ! Ich hatte schon angst, nie mehr meinen Blog administrieren zu können ! Merci und Gruss aus der Schweiz .. ;oD

  33. Danke für den Beitrag,

    der hat mir sicherlich einiges an vergeudeter Lebenszeit und graue Haare erspart.

    Da wäre ich so schnell nicht drauf gekommen, dass wp das Präfix in die Datenbank schreibt.

    Viele Grüße

    Stefan

  34. Vielen Dank!

  35. Jan, Du bist der Beste. Ich wolle auch Sicherheit da die Zugriffe enorm steigen und änderte den Präfix und plötzlich “nix geht mehr”. Nachdem mir gleich 3 Haare erbleicht sind hab ich dies von Dir gefunden. Nun funkts wieder. Meine Herzschläge sind wieder regelmässig.

    Danke Dir vielmals!
    Didi

  36. Konnte mich nach einem Sicherheitsupdate durch das WP-Security Plugin nicht mehr einloggen. Und schon war die Meldung da!

    Hat super geklappt. Vielen Dank!!!

  37. Benny

    Super! Danke!

  38. Bei mir hätte das nicht geklappt, ich setze WPSeo für SEO ein und er braucht jede Menge Optionen die mit “wp_” anfangen (der alte Präfix). Es geht auch einfacher. Man muss nur diese Anfragen ausführen:

    update new_options set option_name =’new_user_roles’
    where option_name = ‘old_user_roles’;
    update new_usermeta set meta_key=’new_capabilities’
    where meta_key = ‘old_capabilities’;
    update new_usermeta set meta_key=’new_user_level’
    where meta_key = ‘old_user_level’;

    Dank Dir bin ich aber auf die Spur gekommen :)

  39. Mike

    Großartig, danke!!

  40. Christian Pfeil

    Großartig! Vielen Dank, dein Post hat mich gerade gerettet.

    LG Christian

Reply to “WordPress: Du hast nicht ausreichend Rechte, um auf diese Seite zuzugreifen.”

Suche