Basierend auf SQL-Abfragen von Stan Sokolov konnte ich ein schreckliches Durcheinander in meinem Wiki beseitigen - ich habe es seit einem halben Jahr nicht überwacht und es war voll mit Spam. Ich musste es ab einem bestimmten Datum reinigen.
Wenn Sie dasselbe versuchen, sichern Sie sich bitte zuerst ein Backup - diese SQL-Abfragen können Ihr Wiki zerstören, Kätzchen töten und eine Schwangerschaft verursachen.
In diesem Beispiel ist "tr_" mein Präfix, "189" ist die letzte gültige Seiten-ID, "41" ist die letzte gültige Benutzer-ID und "20130215152547" ist das erste Spam-Eintragungsdatum.
#Update page state to last good before the date UPDATE tr_page p SET p.page_latest=( SELECT MAX(r.rev_id) FROM tr_revision r WHERE r.rev_page=p.page_id AND rev_timestamp <20130215152547) WHERE p.page_id IN (SELECT r2.rev_page FROM tr_revision r2 WHERE rev_timestamp >=20130215152547); #Update page length to match actual UPDATE tr_page p SET p.page_len=( SELECT r.rev_len FROM tr_revision r WHERE r.rev_page=p.page_id AND r.rev_id=p.page_latest ); #Clean up spam revisions DELETE FROM tr_revision WHERE rev_timestamp >=20130215152547; #Clear recent changes DELETE FROM tr_recentchanges WHERE rc_timestamp >=20130215152547; #Block all new bad users from ever entering wiki with this login UPDATE tr_user SET user_password = '', user_newpassword = '', user_email = '', user_token = '' WHERE user_id>41; #Delete pages, staring from the last good id DELETE FROM tr_page WHERE page_id>189; #Also, you will need TO clean TABLE tr_pagelinks. #You will have to do it manually. It's easy, use some editor #like PHPMyAdmin or SQLyog #Clean cache DELETE FROM `tr_objectcache`; DELETE FROM `tr_querycache`; DELETE FROM `tr_querycachetwo`;