Anhang D: Anmerkungen zur Portierung auf andere Systeme 699
Sie eine solche Anfrage finden, versuchen Sie zun¨achst, auf die neueste MySQL-Version zu
aktualisieren. Wenn das nicht hilft und Sie nichts im mysql-Mailarchiv finden k¨onnen, soll-
online auf der MySQL-Dokumentationsseite (http://www.mysql.com/documentation/).
Wenn Sie mysqld mit --with-myisam-recover gestartet haben, pr¨uft MySQL automatisch
MyISAM-Tabellen und versucht sie zu reparieren, wenn sie als ’nicht korrekt geschlossen’ oder
’besch¨adigt’ gekennzeichnet sind. Wenn das passiert, schreibt MySQL einen Eintrag in
die hostname.err-Datei ’Warning: Checking table ...’, der von Warning: Repairing
table gefolgt wird, wenn die Tabelle repariert werden muss. Wenn Sie viele solcher Fehler
erhalten, ohne dass mysqld direkt davor unerwartet gestorben ist, stimmt etwas nicht und
muss weiter untersucht werden. Siehe Abschnitt 5.1.1 [Command-line options], Seite 170.
Nat¨urlich ist es kein gutes Zeichen, wenn mysqld unerwartet stirbt, doch in diesem Fall sollte
man nicht die Checking table...-Meldungen untersuchen, sondern statt dessen versuchen
herauszufinden, warum mysqld starb.
D.1.6 Einen Testfall herstellen, wenn Sie Tabellenbesch¨adigung
feststellen
Wenn Sie besch¨adigte Tabellen erhalten oder wenn mysqld immer nach irgend einem Ak-
tualisierungsbefehl fehlschl¨agt, k¨onnen Sie mit folgendem ¨uberpr¨ufen, ob der Bug repro-
duzierbar ist:
• Fahren Sie den MySQL-Daemon herunter (mit mysqladmin shutdown).
• Machen Sie eine Datensicherung der Tabellen (um dem sehr unwahrscheinlichen Fall
vorzubeugen, dass die Reparatur etwas Schlechtes macht).
• Pr¨ufen Sie alle Tabellen mit myisamchk -s Datenbank/*.MYI. Reparieren Sie jegliche
besch¨adigten Tabellen mit myisamchk -r datenbank/tabelle.MYI.
• Machen Sie eine Datensicherung der Tabellen.
• Entfernen (oder verschieben) Sie jegliche alten Log-Dateien aus dem MySQL-Daten-
Verzeichnis, wenn Sie mehr Platz brauchen.
• Starten Sie mysqld mit --log-binary. Siehe Abschnitt 5.9.4 [Binary log], Seite 303.
Wenn Sie eine Anfrage finden wollen, die mysqld zum Absturz brachte, sollten Sie
--log --log-binary benutzen.
• Wenn Sie eine besch¨adigte Tabelle erhalten, halten Sie mysqld an.
• Stellen Sie die Datensicherung wieder her.
• Starten Sie den mysqld-Server neu, ohne --log-binary.
• F¨uhren Sie die Befehle mit mysqlbinlog update-log-file | mysql erneut aus.
Die Update-Log-Datei wird im MySQL-Datenbank-Verzeichnis unter dem Namen
hostname-bin.# gespeichert.
• Wenn die Tabellen wieder besch¨adigt werden oder Sie mysqld wieder dazu
bringen k¨onnen zu sterben, haben Sie einen reproduzierbaren Bug gefunden, der
sich leicht beheben lassen sollte! Schicken Sie die Tabellen und die Bin¨ar-Log-
Datei an ftp://support.mysql.com/pub/mysql/secret und schicken Sie eine
Kommentare zu diesen Handbüchern