Comment vérifier toutes les tables de la base de données en une seule fois?
Plutôt que de taper la requête check table ''tablename'';
pour toutes les tables une par une.
Y a-t-il une commande simple comme ça check all
ou quelque chose comme ça?
à partir de la ligne de commande, vous pouvez utiliser:
mysqlcheck -A --auto-repair
La commande est la suivante:
mysqlcheck -u root -p --auto-repair --check --all-databases
Vous devez fournir le mot de passe lorsque vous y êtes invité,
ou vous pouvez exécuter celui-ci mais ce n'est pas recommandé car le mot de passe est écrit en texte clair:
mysqlcheck -u root --password=THEPASSWORD --auto-repair --check --all-databases
Utilisez la requête suivante pour imprimer des
REPAIR
instructions SQL pour toutes les tables d'une base de données:Après cela, copiez toutes les requêtes et exécutez-les
mydatabase
.Remarque: remplacez
mydatabase
par le nom de base de données souhaitéla source
Pas besoin de taper le mot de passe, utilisez simplement l'une de ces commandes (explicite):
la source
La commande suivante a fonctionné pour moi en utilisant l'invite de commande (en tant qu'administrateur) dans Windows:
Exécutez mysqlcheck avec l'utilisateur root, demandez un mot de passe, vérifiez toutes les bases de données et réparez automatiquement les tables corrompues.
la source
Il n'y a pas de commande par défaut pour ce faire, mais vous pouvez créer une procédure pour faire le travail. Il parcourt les lignes de
information_schema
et appelleREPAIR TABLE 'tablename';
chaque ligne.CHECK TABLE
n'est pas encore pris en charge pour les instructions préparées. Voici l'exemple (remplacez MYDATABASE par le nom de votre base de données):la source
J'aime ceci pour une simple vérification depuis le shell:
la source
mysql -ss
pour faire omettre les noms de colonnes de la sortie - cela permettrait de supprimerNR != 1
de votre codepour les hôtes plesk, l'un de ceux-ci devrait faire: (les deux font de même)
la source
Vous aurez peut-être besoin d'un nom d'utilisateur et d'un mot de passe:
Vous serez invité à entrer le mot de passe.
Si vous souhaitez mettre en cron, MAIS votre mot de passe sera visible en texte brut!
la source
Si des tables corrompues restent après
essayer
la source