Tabellen nach Neustart überprüfen
Posted: 2007-05-01 19:28
Ich glaub ich steh im Wald. Durch einen Stromausfall und anschließenden Neustart wollte ich die Tabellen .MYI überprüfen. Leider gestaltet es sich doch nicht so einfach, wie ich das eigentlich dachte.
Ergebnis:
Ich kann nur myisamchk direkt im myql Verzeichnis des Useres also mit "*.MYI" ausführen.
Wenn ich den Server starte ( Debian) wird doch eh schon alles überprüft?
Laut Doku muss ich den MySQL Server vorher stoppen vor der Überprüfung oder
anwenden. Muss man das nur einmal anwenden vor "myisamchk" und gut ist?
Auf jeden Fall komm ich nicht dazu alle Tabellen in einem Rutsch zu überprüfen und mir eventuelle Fehler anzeigen zu lassen. Das kanns irgendwie nicht sein. myisamchk ist doch das was ich verwenden muss. Und Fehler werden doch wohl unübersehbar angezeigt?
Weil hier endet myisamcheck (wie oben beschreiben nur in einem Verzeichnis ohne Wildcard ausführbar) mit:
So nichts weiter. Fehler würden doch in der letzten Zeile zusammengefasst dargestellt werden?
Deleted Blocks ist wohl auch nicht weiter wild, sondern besagen nur das da mal irgendwas gelöscht worden ist?
Code: Select all
myisamchk /var/lib/mysql/*/*.MYI
Code: Select all
-bash: /usr/bin/myisamchk: Die Argumentliste ist zu lang
Wenn ich den Server starte ( Debian) wird doch eh schon alles überprüft?
Code: Select all
#!/bin/bash
#
# This script is executed by "/etc/init.d/mysql" on every (re)start.
#
# Changes to this file will be preserved when updating the Debian package.
#
source /usr/share/mysql/debian-start.inc.sh
MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
MYCHECK="/usr/bin/mysqlcheck --defaults-file=/etc/mysql/debian.cnf"
MYCHECK_SUBJECT="WARNING: mysqlcheck has found corrupt tables"
MYCHECK_PARAMS="--all-databases --fast --silent"
# Put commands in the background if they should not block the server start.
(
mycheck;
) &
exit 0
Code: Select all
mysqladmin -p flush-tables
anwenden. Muss man das nur einmal anwenden vor "myisamchk" und gut ist?
Auf jeden Fall komm ich nicht dazu alle Tabellen in einem Rutsch zu überprüfen und mir eventuelle Fehler anzeigen zu lassen. Das kanns irgendwie nicht sein. myisamchk ist doch das was ich verwenden muss. Und Fehler werden doch wohl unübersehbar angezeigt?
Weil hier endet myisamcheck (wie oben beschreiben nur in einem Verzeichnis ohne Wildcard ausführbar) mit:
Code: Select all
....
....
....
---------
Checking MyISAM file: ./webmail_sign.MYI
Data records: 5 Deleted blocks: 1
- check file-size
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1
- check record links
---------
Deleted Blocks ist wohl auch nicht weiter wild, sondern besagen nur das da mal irgendwas gelöscht worden ist?