Vous pouvez utiliser mysqlcheck
comme outil
d'entretien et de réparation pour les tables
MyISAM
. mysqlcheck
est
disponible depuis MySQL version 3.23.38.
mysqlcheck
est similaire à
myisamchk
mais il fonctionne différemment.
mysqlcheck
doit être utilisé lorsque le
serveur mysqld
fonctionne, alors que
myisamchk
doit être utilisé lorsque le
serveur ne fonctionne pas. L'intérêt st que vous n'avez plus
besoin d'interrompre le serveur pour vérifier ou réparer vos
tables.
mysqlcheck
utilise les commandes du serveur
MySQL CHECK
, REPAIR
,
ANALYZE
et OPTIMIZE
, d'une
manière pratique pour l'utilisateur.
Il y a trois fa¸ons différentes d'utiliser
mysqlcheck
:
shell>mysqlcheck [options] db_name [tables]
shell>mysqlcheck [options] --databases DB1 [DB2 DB3...]
shell>mysqlcheck [options] --all-databases
Il peut aussi être utilisé comme mysqldump
lorsqu'il faut choisir les bases et tables à traiter.
mysqlcheck
dispose d'une fonctionnalité
spéciale, comparé aux autres clients : le comportement par
défaut, c'est à dire la vérification des tables, peut être
modifiée en renommant le fichier binaire. Si vous voulez avoir un
fichier qui réparer les tables par défaut, il suffit de copier
mysqlcheck
sur votre disque, et de l'appeler
mysqlrepair
, ou bien, de faire un lien
symbolique sur l'exécutable et de l'appeler
mysqlrepair
. Si vous appelez
mysqlrepair
, il va réparer les tables par
défaut.
Les noms que vous pouvez utiliser pour que
mysqlcheck
réparer automatiquement les tables
sont :
mysqlrepair |
L'option par défaut est --repair
|
mysqlanalyze |
L'option par défaut est --analyze
|
mysqloptimize |
L'option par défaut est --optimize
|
Les options disponibles pour mysqlcheck
sont
listées ici. Vérifiez que votre version les supporte avec la
commande mysqlcheck --help
.
-?, --help
Affiche ce message d'aide, et termine.
--all-databases, -A
Vérifie toutes les bases. C'est la même chose que
--databases
dans toutes les bases
sélectionnées.
--all-in-1, -1
Au lieu de faire une requête par table, exécute toutes les requêtes dans une requête, séparément pour chaque base. Les noms de tables seront séparés par une virgule.
--analyze, -a
Analyse les tables indiquées.
--auto-repair
Si une table vérifiées est corrompue, la corrige automatiquement. La réparation sera faite après la vérification de toutes les tables, si des tables corrompues ont été découvertes.
--character-sets-dir=...
Dossier contenant le jeu de caractères. See Section 5.8.1, « Le jeu de caractères utilisé pour les données et le stockage ».
--check, -c
Vérifie les tables en erreur
--check-only-changed, -C
Vérifie uniquement les tables qui ont été modifiées depuis la dernière modification, ou qui n'ont pas été correctement fermées.
--compress
Utiliser la compression du protocole client/serveur.
--databases, -B
Pour tester plusieurs bases de données. Notez que la différence d'utilisation : dans ce cas, aucune table n'est précisé. Tous les arguments de noms sont considérés comme des noms de base.
--debug[=debug_options], -# [debug_options]
Affiche le log de débogage. Souvent, la chaîne
debug_options
vaut
'd:t:o,nom_de_fichier'
.
--default-character-set=...
Spécifie le jeu de caractères par défaut. See Section 5.8.1, « Le jeu de caractères utilisé pour les données et le stockage ».
--extended, -e
Si vous utilisez cette option avec CHECK
TABLE
, elle va s'assurer que la table est totalement
cohérente, mais prendre un très long temps.
Si vous utilisez cette option avec REPAIR TABLE, elle va réaliser une réparation exhaustive de la table, qui peut non seulement prendre un temps très long, mais produire de nombreuses lignes erronées.
--fast, -F
Ne vérifie que les tables qui n'ont pas été correctement fermées.
--force, -f
Continue même si on rencontre une erreur SQL.
--host=host_name, -h host_name
Connexion à l'hôte.
--medium-check, -m
Plus rapide que la vérification complète, mais ne trouvera que 99.99 % de toutes les erreurs. Cela devrait être la bonne option pour la plupart des situations.
--optimize, -o
Optimise la table.
--password[=password], -p[password]
Le mot de passe à utiliser lors de la connexion au serveur. Si aucun mot de passe n'est fourni, il sera demandé en ligne de commande. Il ne faut pas laisser d'espace entre l'option -p et le mot de passe.
--port=port_num, -P port_num
Le numéro de port de la connexion.
--protocol={TCP | SOCKET | PIPE | MEMORY}
Pour spécifier le protocole à utiliser pour la connexion. Nouveau en MySQL 4.1.
--quick, -q
Si vous utilisez cette option avec CHECK
TABLE
, elle va éviter que l'analyse ne traite
toutes les lignes pour vérifier les mauvais liens. C'est la
méthode d'analyse la plus rapide.
Si vous utilisez cette option avec REPAIR TABLE, elle va essayer de ne réparer que le fichier d'index. C'est la méthode la plus rapide pour la réparation.
--repair, -r
Peut corriger presque tout, sauf les problèmes de doublons pour les clés uniques.
--silent, -s
Affiche moins de messages d'erreurs.
--socket=path, -S path
Nom du fichier de socket à utiliser pour la connexion.
--tables
Remplace l'option --databases
ou
-B
. Tous les arguments suivants sont
considérés comme des noms de tables.
--user=user_name, -u user_name
Nom d'utilisateur pour la connexion, si ce n'est pas l'utilisateur courant.
--verbose, -v
Afficher des informations sur les différentes étapes.
--version, -V
Affiche les informations de version, et termine.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.