Wie überprüfe ich alle Tabellen in der Datenbank auf einmal?
Anstatt die Abfrage check table ''tablename'';
für alle Tabellen einzeln einzugeben .
Gibt es einen einfachen Befehl check all
oder ähnliches?
Über die Befehlszeile können Sie Folgendes verwenden:
mysqlcheck -A --auto-repair
Der Befehl lautet:
mysqlcheck -u root -p --auto-repair --check --all-databases
Sie müssen das Passwort angeben, wenn Sie dazu aufgefordert werden.
oder Sie können dieses ausführen, es wird jedoch nicht empfohlen, da das Kennwort im Klartext geschrieben ist:
mysqlcheck -u root --password=THEPASSWORD --auto-repair --check --all-databases
Verwenden Sie die folgende Abfrage, um
REPAIR
SQL-Anweisungen für alle Tabellen in einer Datenbank zu drucken :Danach kopieren Sie alle Abfragen und führen sie aus
mydatabase
.Hinweis: Durch den
mydatabase
gewünschten DB-Namen ersetzenquelle
Sie müssen das Passwort nicht eingeben, verwenden Sie einfach einen der folgenden Befehle (selbsterklärend):
quelle
Der folgende Befehl funktionierte für mich über die Eingabeaufforderung (als Administrator) in Windows:
Führen Sie mysqlcheck mit dem Root-Benutzer aus, geben Sie ein Kennwort ein, überprüfen Sie alle Datenbanken und reparieren Sie beschädigte Tabellen automatisch.
quelle
Es gibt keinen Standardbefehl, um dies zu tun, aber Sie können eine Prozedur erstellen, um den Job auszuführen. Es wird durch Zeilen von durchlaufen
information_schema
undREPAIR TABLE 'tablename';
für jede Zeile aufrufen .CHECK TABLE
wird für vorbereitete Anweisungen noch nicht unterstützt. Hier ist das Beispiel (ersetzen Sie MYDATABASE durch Ihren Datenbanknamen):quelle
Ich mag dies für eine einfache Überprüfung von der Shell:
quelle
mysql -ss
, um Spaltennamen aus der Ausgabe wegzulassen - dies würde es ermöglichen,NR != 1
aus Ihrem Code zu entfernenFür plesk-Hosts sollte eine davon Folgendes tun: (beide tun dasselbe)
quelle
Möglicherweise benötigen Sie Benutzername und Passwort:
Sie werden zur Eingabe des Passworts aufgefordert.
Wenn Sie cron eingeben möchten, ABER Ihr Passwort wird im Klartext angezeigt!
quelle
Wenn beschädigte Tabellen nach bleiben
Versuchen
quelle