Page 1 of 1

myisamchk nur kaputte Tabellen reparieren

Posted: 2008-03-20 14:25
by cirox
Nach einem MySQL ServerAbsturz möchte ich nun nur!die kaputten Tabellen reparieren von ungefähr 250 Datenbanken. Ein

Code: Select all

mysqlcheck --all-databases --auto-repair --extended --optimize -uroot -p
hat schon mal gar nichts gebracht. Hier ist alles ok :?:

Die kaputten Tabellen werden aber als "is marked as crashed" in phpMyAdmin angezeigt und sind "in Benutzung". Das einzig funktionierende zum Überprüfen - also alles in einem Rutsch - scheint zu sein auf der Shell:

Code: Select all

for i in `find /var/lib/mysql/ -type f -name *.MYI`; do myisamchk ${i}; done
Jetzt erscheinen in der Standardausgabe auch die ganzen fehlerhaften Tabellen. Wie kann ich den Befehl mit der for - do Schleife so abändern, dass er automatisch die kaputten (marked as crashed oder ähnlich) Tabellen repariert? Ein "myisamch -r" würde ja alle Tabellen reparieren und nicht nur die Kaputten. Ein "myisamchk --auto-repair" hab ich nicht gefunden.

PS:

1. Was ich auch nicht verstehe ist: Warum sendet mir das debian mysql Start Script eine detaillierte Zusammenfassung welche Tabelen "corrupt" sind mittels "mysqlcheck" und der Befehl siehe oben! sagt, dass alles ok ist. :?:

2. Bekommt man unter debian nicht nach jedem (re)Start so eine Mail? Wie kannich das debuggen, wenn nichts ankommt. Also die Mail wird gar nicht an (mailx) übergeben.

Re: myisamchk nur kaputte Tabellen reparieren

Posted: 2008-03-21 11:03
by aubergine
Was soll es an einer Tabelle die OK. ist zu reparieren geben?

=> http://dev.mysql.com/doc/refman/5.1/de/myisamchk.html

Re: myisamchk nur kaputte Tabellen reparieren

Posted: 2008-03-21 11:59
by cirox
Das hat mich zum Ziel gebracht

Code: Select all

for i in `find /var/lib/mysql/ -type f -name *.MYI`; do myisamchk --fast --force --update-state ${i}; done