
Ich werde derzeit von einer neuen SPAM-Welle überollt, zumindest fühlt es sich so an. In dem Artikel will ich zeigen, wie man mit wenig Aufwand seine SPAM-Kommentare mittels phpMyAdmin löscht.
Ich setze auf den meisten Blogs AntiSpam Bee von Sergey Müller pluginkollektiv ein. Bisher hat mich das auch recht zuverlässig gegen SPAM-Kommentare geschützt. In den letzten Wochen hat das SPAM-Aufkommen in meinen Blogs aber derart zugenommen, dass ich fast im SPAM ertrinke. Leider kommen auch sehr viel mehr SPAM-Kommentare in die Moderation durch. Das könnte z.B. daran liegen, dass vor einiger Zeit die IP- und Sprachen-Validierung der Kommentatoren in dem Plugin entfernt wurden (die Validierung wurde über kostenpflichtige APIs durchgeführt und die Kosten wollten die Entwickler verständlicherweise irgendwann nicht mehr übernehmen).
Aber selbst, wenn SPAM zuverlässig erkannt wird, kann dieser zu Problemen führen. In meinem Beispiel habe ich in relativ kurzer Zeit in einem Blog über 100.000 SPAM-Kommentare eingefangen.
Diese SPAM-Kommentare möchte ich nun wie gewöhnlich über den Button “SPAM leeren” löschen. In meinem Fall ist dann aber lediglich eine Fehlermeldung erschienen. Wahrscheinlich, weil es einfach zu viele Kommentare sind und die das temporäre PHP-Memory sprengen.
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 72 bytes) in /web/…../htdocs/wp-includes/wp-db.php on line 1846
Also muss hier eine andere Lösung her. Die gibt es auch und zwar mit Hilfe von phpMyAdmin. Damit können direkt Änderungen in der MySQL-Datenbank durchgeführt werden. In dem folgenden Screenshot sieht man auch, dass die SPAM-Kommentare mehr als 180 MB in der Datenbank beanspruchen.
Um die SPAM-Kommentare nun effektiv zu löschen, müssen diese erst einmal in der Datenbank identifiziert werden. Denn höchstwahrscheinlich habt Ihr ja nicht ausschließlich SPAM in den Kommentaren, sondern auch einige bereits von Euch freigeschaltete (approved). Ihr ruft also im nächsten Schritt die Tabelle “wp_comments” auf. Hier ist die Spalte “comment_approved” interessant. Bei mir gibt es hier drei Ausprägungen:
- comment_approved = spam -> dies sind die Kommentare, die bereits als SPAM identifiziert wurden
- comment_approved = 0 (null) -> dies sind die Kommentare, die noch nicht moderiert wurden. In meinem Fall auch alles SPAM
- comment_approved = 1 -> dies sind die von mir freigegebenen “echten” Kommentare
Ich möchte im nächsten Schritt die Kommentare mit den Ausprägungen “0 und “SPAM” aus der Tabelle löschen. Bevor ich das mache, lege ich noch eine Sicherungskopie der gesamten Datenbank an. Das lässt sich innerhalb von phpMyAdmin über den Reiter “Exportieren” sehr leicht umsetzen.
Nun die Tabelle “wp_comments” durch anklicken der Checkbox auswählen und danach oben auf “MySQL” klicken. Dort zunächst diesen Befehl eingeben und ausführen:
delete from wp_comments WHERE comment_approved ="spam"
und danach noch diesen
delete from wp_comments WHERE comment_approved ="0"
So schaut es nach der erfolgreichen Löschung der SPAM-Kommentare aus:
Bitte sozial teilen
Wenn dir dieser Beitrag gefallen hat, dann teile ihn doch bitte in den verschiedenen sozialen Netzwerken! Du würdest mir damit sehr helfen!