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 [
shell>options
]db_name
[tables
]mysqlcheck [
shell>options
] --databasesdb_name1
[db_name2
db_name3
...]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
, -1
Statt 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
, -a
Analysiert die Tabellen.
--auto-repair
Wenn eine überprüfte Tabelle beschädigt ist, wird sie automatisch repariert. Reparaturarbeiten werden erledigt, nachdem alle Tabellen überprüft wurden.
--character-sets-dir=
path
Das 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.
--compress
Komprimiert alle Daten, die zwischen Client und Server ausgetauscht werden, sofern beide die Komprimierung unterstützen.
--databases
, -B
Verarbeitet 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_name
Verwendet charset_name
als
Standardzeichensatz. Siehe auch
Abschnitt 5.11.1, „Der für Daten und zum Sortieren benutzte Zeichensatz“.
--extended
, -e
Wenn 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
, -f
Das Programm wird auch dann fortgesetzt, wenn ein SQL-Fehler auftritt.
--host=
,
host_name
-h
host_name
Stellt eine Verbindung zum MySQL Server auf dem angegebenen Host her.
--medium-check
, -m
Fü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
, -o
Optimiert 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_num
Die TCP/IP-Portnummer, die für die Verbindung verwendet werden soll.
--protocol={TCP|SOCKET|PIPE|MEMORY}
Das zu verwendende Verbindungsprotokoll.
--quick
, -q
Wenn 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
, -r
Führt eine Reparatur durch, die fast alle Fehler beheben kann. Ausgenommen sind lediglich eindeutige Schlüssel, die nicht eindeutig sind.
--silent
, -s
Stummer Modus. Gibt nur Fehlermeldungen aus.
--socket=
,
path
-S
path
Bei Verbindungen mit localhost
ist dies
die zu verwendende Unix-Socketdatei bzw. (unter Windows)
der Name der zu verwendenden Named Pipe.
--tables
Setzt die Option --databases
bzw.
-B
außer Kraft. Alle auf die Option
folgenden Namensargumente werden als Tabellennamen
betrachtet.
--user=
,
user_name
-u
user_name
Verwendet den angegebenen MySQL-Benutzernamen zur Verbindung mit dem Server.
--verbose
, -v
Ausführlicher Modus. Gibt Informationen zu den verschiedenen Stufen des Programmablaufs aus.
--version
, -V
Zeigt die Versionsinformation an und wird dann beendet.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.