Mysql DB Check mit mysqlcheck

mysqlcheck — Hilfsprogramm für die Wartung und Reparatur von Tabellen

Der Client mysqlcheck prüft, repariert, optimiert und analysiert Tabellen.

mysqlcheck ähnelt hinsichtlich seines Funktionsumfangs myisamchk, funktioniert aber anders. Der wesentliche Unterschied besteht darin, dass mysqlcheck verwendet werden muss, wenn der Server mysqld ausgeführt wird, wohingegen myisamchk verwendet werden sollte, wenn er nicht läuft. Der Vorteil der Verwendung von mysqlcheck besteht darin, dass Sie den Server nicht beenden müssen, um Ihre Tabellen zu überprüfen oder zu reparieren.

mysqlcheck verwendet die SQL-Anweisungen CHECK TABLE, REPAIR TABLE, ANALYZE TABLE und OPTIMIZE TABLE auf eine für den Benutzer praktische Weise. Das Programm bestimmt, welche Anweisungen für die gewünschte Operation durchzuführen sind, und sendet diese Anweisungen dann zur Ausführung an den Server. Weitere Informationen dazu, bei welchen Speicher-Engines die jeweiligen Anweisungen funktionieren, finden Sie in Kapitel 13, SQL-Anweisungssyntax.

Die MyISAM-Speicher-Engine unterstützt alle vier Anweisungen, d. h., mysqlcheck kann zur Durchführung aller vier Operationen an MyISAM-Tabellen verwendet werden. Andere Speicher-Engines unterstützen nicht unbedingt alle Operationen. Gegebenenfalls wird eine Fehlermeldung angezeigt. Wenn beispielsweise test.t eine MEMORY-Tabelle ist, dann führt der Versuch, sie zu überprüfen, zu folgendem Ergebnis:

shell> mysqlcheck test t
test.t
note : The storage engine for the table doesn’t support check

Es gibt drei Möglichkeiten, mysqlcheck aufzurufen:

shell> mysqlcheck [options] db_name [tables]
shell> mysqlcheck [options] –databases db_name1 [db_name2 db_name3…]
shell> mysqlcheck [options] –all-databases

Wenn Sie auf db_name folgend keine Tabellen aufführen oder die Optionen –databases oder –all-databases verwenden, dann werden ganze Datenbanken überprüft.

mysqlcheck bietet eine im Vergleich zu anderen Clientprogrammen spezielle Funktion. Das Standardverhalten des Ãœberprüfens von Tabellen (–check) kann geändert werden, indem die Binärdatei umbenannt wird. Wenn Sie ein Tool benötigen, das Tabellen standardmäßig repariert, sollten Sie einfach eine Kopie von mysqlcheck namens mysqlrepair oder eine symbolische Verknüpfung zu mysqlcheck namens mysqlrepair erstellen. Wenn Sie dann mysqlrepair aufrufen, werden die Tabellen standardmäßig repariert.

Die folgenden Namen können verwendet werden, um das Standardverhalten von mysqlcheck zu ändern:
mysqlrepair Die Standardoption ist –repair.
mysqlanalyze Die Standardoption ist –analyze.
mysqloptimize Die Standardoption ist –optimize.

mysqlcheck unterstützt die folgenden Optionen:

* –help, -?Zeigt eine Hilfemeldung an und wird dann beendet.
* –all-databases, -AÃœberprüft alle Tabellen in allen Datenbanken. Dies entspricht der Option –databases bei gleichzeitiger Nennung aller Datenbanken auf der Befehlszeile.
* –all-in-1, -1Statt eine Anweisung für jede Tabelle einzeln abzusetzen, wird eine einzelne Anweisung für jede Datenbank ausgeführt, die alle zu verarbeitenden Tabellen aus dieser Datenbank benennt.
* –analyze, -aAnalysiert die Tabellen.
* –auto-repairWenn eine überprüfte Tabelle beschädigt ist, wird sie automatisch repariert. Reparaturarbeiten werden erledigt, nachdem alle Tabellen überprüft wurden.
* –character-sets-dir=pathDas Verzeichnis, in dem Zeichensätze installiert sind. Siehe auch Abschnitt 5.11.1, „Der für Daten und zum Sortieren benutzte Zeichensatz“.
* –check, -cÃœberprüft die Tabellen auf Fehler. Dies ist die Standardoperation.
* –check-only-changed, -CÃœberprüft nur solche Tabellen, die seit der letzten Ãœberprüfung geändert oder aber nicht korrekt geschlossen wurden.
* –compressKomprimiert alle Daten, die zwischen Client und Server ausgetauscht werden, sofern beide die Komprimierung unterstützen.
* –databases, -BVerarbeitet alle Tabellen in den aufgeführten Datenbanken. Normalerweise betrachtet mysqlcheck das erste Namensargument auf der Befehlszeile als Datenbank- und alle nachfolgenden Argumente als Tabellennamen. Bei dieser Option hingegen werden alle Namensargumente als Datenbanknamen behandelt.
* –debug[=debug_options], -# [debug_options]Schreibt ein Debuglog. Der String debug_options heißt häufig ‚d:t:o,file_name‘.
* –default-character-set=charset_nameVerwendet charset_name als Standardzeichensatz. Siehe auch Abschnitt 5.11.1, „Der für Daten und zum Sortieren benutzte Zeichensatz“.
* –extended, -eWenn Sie diese Option zur Ãœberprüfung von Tabellen einsetzen, ist sichergestellt, dass diese hundertprozentig konsistent sind; der Vorgang dauert allerdings sehr lange.Wenn Sie die Option bei der Reparatur von Tabellen einsetzen, wird eine erweiterte Reparatur durchgeführt, deren Ausführung nicht nur extrem lange dauert, sondern die auch eine Menge überflüssiger Datensätze erzeugt!
* –fast, -FÃœberprüft nur Tabellen, die nicht ordnungsgemäß geschlossen wurden.
* –force, -fDas Programm wird auch dann fortgesetzt, wenn ein SQL-Fehler auftritt.
* –host=host_name, -h host_nameStellt eine Verbindung zum MySQL Server auf dem angegebenen Host her.
* –medium-check, -mFührt eine Ãœberprüfung durch, die schneller ist als eine –extended-Operation. Hierdurch werden nur 99,99 Prozent aller Fehler gefunden (dies sollte allerdings in den meisten Fällen ausreichend sein).
* –optimize, -oOptimiert die Tabellen.
* –password[=password], -p[password]Verwendet das angegebene Passwort zur Verbindung mit dem Server. Wenn Sie die Kurzform der Option (-p) verwenden, dürfen Sie kein Leerzeichen zwischen Option und Passwort setzen. Lassen Sie den Wert password auf die Option –password bzw. -p folgend weg, dann werden Sie zur Eingabe des Passworts aufgefordert.Die Angabe eines Passworts direkt auf der Befehlszeile ist als nicht sicher einzuordnen. Siehe auch Abschnitt 5.9.6, „Wie Sie Ihre Kennwörter sicher halten“.
* –port=port_num, -P port_numDie TCP/IP-Portnummer, die für die Verbindung verwendet werden soll.
* –protocol={TCP|SOCKET|PIPE|MEMORY}Das zu verwendende Verbindungsprotokoll.
* –quick, -qWenn Sie mit dieser Option Tabellen überprüfen, wird verhindert, dass die Datensätze auf falsche Verknüpfungen geprüft werden. Dies ist die schnellste Prüfmethode.Wenn Sie die Option bei der Reparatur von Tabellen einsetzen, wird versucht, nur den Indexbaum zu reparieren. Dies ist die schnellste Reparaturmethode.
* –repair, -rFührt eine Reparatur durch, die fast alle Fehler beheben kann. Ausgenommen sind lediglich eindeutige Schlüssel, die nicht eindeutig sind.
* –silent, -sStummer Modus. Gibt nur Fehlermeldungen aus.
* –socket=path, -S pathBei Verbindungen mit localhost ist dies die zu verwendende Unix-Socketdatei bzw. (unter Windows) der Name der zu verwendenden Named Pipe.
* –tablesSetzt die Option –databases bzw. -B außer Kraft. Alle auf die Option folgenden Namensargumente werden als Tabellennamen betrachtet.
* –user=user_name, -u user_nameVerwendet den angegebenen MySQL-Benutzernamen zur Verbindung mit dem Server.
* –verbose, -vAusführlicher Modus. Gibt Informationen zu den verschiedenen Stufen des Programmablaufs aus.
* –version, -VZeigt die Versionsinformation an und wird dann beendet.