logo

wp_options Tabelle in Wordpress ständig kaputt

07 Oct 2017

In unserem Blog ekiwi-blog.de hatten wir in der vergangenen Zeit immer wieder Probleme damit, dass die Datenverbindung nicht funktionierte und damit das Blog nicht erreichbar war. Eine lapidare Meldung, dass keine Verbindung zur Datenbank hergestellt werden konnte, mehr kam nicht mehr.

Es stellte sich stets heraus, dass die Tabelle wp_options defekt war. In phpMyAdmin wurde die Tabelle mit 0 Zeilen und in use dargestellt. Was tun? Im Internet findet man zahlreiche Tipps, wie man die Tabelle repariert. Alles das hilft auch, aber da da Problem stets erneut auftrat, war das nicht die endgültige Lösung.

In phpyAdmin kann man die Tabelle mit folgendem Befehl überprüfen:

CHECK TABLE wp_options

Die Überprüfung ergab folgende Unstimmigkeiten.

Table				Op		Msg_type	Msg_text
db-blog.wp_options	check	warning		Table is marked as crashed and last repair failed
db-blog.wp_options	check	warning		1 client is using or hasn't closed the table prope...
db-blog.wp_options	check	warning		Size of indexfile is: 41984      Should be: 4096
db-blog.wp_options	check	error		Record-count is not ok; is 517   Should be: 0
db-blog.wp_options	check	warning		Found 803320 deleted space.   Should be 0
db-blog.wp_options	check	warning		Found 28 deleted blocks Should be: 0 
db-blog.wp_options	check	warning		Found 551 key parts. Should be: 0
db-blog.wp_options	check	error		Corrupt

Die manuelle Reparatur kann man über phpMyadmin vornehmen. Entweder über die Funktion in der Oberfläche oder durch Eingabe des folgenden SQL-Befehls:

REPAIR TABLE wp_options

Anschließend meldete die Überprüfung, dass wieder alles OK sei:

db-blog.wp_options	repair	status	OK

Der Blog lief wieder. Tritt das Problem einmalig auf, ist die manuelle Reparatur das Mittel der Wahl. Leider trat das Problem nach unregelmäßiger Zeit immer wieder auf. Das ist blöd, weil man solche Dinge dann erst durch Zufall mitbekommt, wenn man den Blog im Browser aufruft. Da die Tabelle wp_options irgendwelche Einstellungen diverser Plugins speichert, habe ich einfach mal versucht ein paar Plugins zu entfernen. Ohne Erfolg.

Ändern der Storage Engine

Das Problem scheint ein allgemeines Problem der Storage Engine MyIsam zu sein. Deutet man die Fehlermeldung, dann hat ein Client die Verbindung zur Tabelle nicht ordentlich geschlossen. Das ist meiner Meinung nach etwas, was eine vernünftige Datenbank ohne Probleme aushalten sollte.

Daher kam ich auf die Idee, die Storage Engine auf InnoDB abzuändern. InnoDB sollte hoffentlich etwas zuverlässiger funktionieren, als das einfachere MyISAM-Format.

Die Konvertierung der Tabelle geht recht leicht über phpMyAdmin:

Am Besten erstellt man vorher ein Backup der Tabelle. Negative Auswirkungen habe ich bisher keine mitbekommen und das Problem der kaputten Tabelle ist bisher nicht wieder aufgetreten. Ich hoffe das bleibt so.


Support

comments powered by Disqus