Mysqlcheck est une commande utilisée pour la maintenance des tables. Cette commande permet de vérifier les tables d’une base de données, de réparer la base de données, d’optimiser les performances des tables ou d’analyser les tables.
Il convient de noter que cette commande verrouille les tables. De plus, le serveur MySQL doit être en cours d’exécution pour que vous puissiez utiliser cette commande.
La commande suivante permet d’afficher l’état du serveur dans Windows :
sc query mysqlXX
Ici XX est la version de MySQL.
La commande fournit les informations suivantes :
- Nom du service est le nom du service.
- Le type WIN32_OWN_PROCESS signifie que ce service ne dépend pas d’autres services.
- L’état du service. Dans le cas présent, il s’agit de RUNNING (en cours d’exécution). Il peut également s’agir d’un état STOPPED ou PAUSED.
- Si le code WIN32_EXIT_CODE est 0, cela signifie que le service s’est terminé sans problème.
- CHECKPOINT égal à 0 signifie qu’il n’y a pas de point de contrôle. Cette valeur est à usage interne.
- WAIT_HINT estime le temps en ms dont le service a besoin pour terminer l’opération.
Voyons quelques exemples d’exécution de la commande.
Dans le dossier MySQL bin, exécutez cette commande dans la ligne de commande :
Mysqlcheck -repair stellardb
Cette commande répare la base de données appelée stellardb.
La commande suivante compresse la connexion utilisée par la commande.
mysqlcheck -r -compress stellardb
Remarque : les options -repair et -r sont identiques.
Dans l’exemple suivant, la base de données est automatiquement réparée si nécessaire. L’option de réparation automatique vérifie l’état des tables. S’il y a des erreurs, elles sont réparées.
mysqlcheck -r -auto-repair stellardb
L’option suivante permet de vérifier uniquement les tables qui n’ont pas été fermées correctement.
mysqlcheck -fast stellardb
Si vous souhaitez déboguer, vous pouvez utiliser l’option -debug. Dans l’exemple suivant, un journal est créé dans le fichier c:\log\debug.log.
mysqlcheck -debug=d:t:o,c:\log\debug.log stellardb
Dans l’exemple ci-dessus :
- d signifie débogage.
- t signifie que l’horodatage doit être compris dans le fichier journal.
- o signifie que vous vous connectez à un nom de fichier.
Enfin, l’option “Analyse” permet de vérifier les statistiques et la répartition des clés d’un tableau. L’exemple suivant montre comment vous pouvez utiliser cette option.
mysqlcheck -analyze stellardb
Une solution alternative
Parfois, il ne suffit pas d’utiliser la commande mysqlcheck. Vous devez utiliser d’autres outils pour réparer la ou les bases de données MySQL endommagées. Stellar Repair for MySQL est l’un de ces outils.
Pour réparer la base de données, vous devez arrêter le service MySQL et faire une copie du dossier contenant la base de données.
Vous pouvez arrêter les services à l’aide des services Windows.
Saisissez Services dans la barre de recherche de Windows et cliquez sur l’application Services. Sur la page Services, cliquez avec le bouton droit de la souris sur le service et sélectionnez Arrêter.
Après l’arrêt, recherchez les bases de données. Elles sont normalement stockées au bureau suivant :
C:\NProgramDataMySQLMySQL Server X.X\NData
X.X est le numéro de version.
Copiez le dossier de données dans un autre bureau. Vous pouvez le faire manuellement sous Windows ou via la ligne de commande :
xcopy /s /e /i “C:\ProgramDataMySQL\MySQL Server 8.0\Data” “c:\backup\data”
Une fois les données copiées, ouvrez Stellar Repair for MySQL, cliquez sur le bouton Parcourir et sélectionnez le dossier dans le répertoire c:\backup\data.
Sélectionnez la ou les bases de données à réparer et cliquez sur le bouton Réparer.
Appuyez sur l’icône Enregistrer pour sauvegarder les objets.
Vous pouvez enregistrer et remettre les informations dans une base de données ou les exporter dans différents formats tels que Excel, HTML et CSV.
Conclusion
Dans cet article, nous avons abordé les différentes options offertes par la commande mysqlcheck pour vérifier et réparer la base de données MySQL. Si la commande ne peut pas réparer la base de données, vous pouvez utiliser Stellar Repair for MySQL. Il s’agit d’un logiciel puissant qui permet de réparer les bases de données MySQL endommagées et de récupérer tous les objets de la base de données.
Was this article helpful?