Table des matières
    Réparation de la base de données MySQL

    Comment corriger l’erreur de base de données MySQL “Fichier de clés incorrect pour la table” ?


    Table des matières

      Résumé: Ce blog traite en détail de l'erreur MySQL "Incorrect Key File for Table" (fichier de clés incorrect pour la table). Il décrit les causes possibles de l'erreur et les solutions pour les résoudre. Pour corriger l'erreur causée par des tables corrompues, essayez d'utiliser le logiciel Stellar Repair for MySQL. Utilisez la version de démonstration du logiciel pour réparer la base de données et ses tables corrompues, et prévisualisez les tables récupérables pour vérifier l'intégrité des données.

      Téléchargement gratuit pour Windows
      Téléchargement gratuit

      Vous pouvez rencontrer l’erreur MySQL “Fichier clé incorrect pour la table” lors de l’exécution d’une requête MySQL volumineuse. Par exemple, certains utilisateurs ont signalé avoir reçu cette erreur lors de l’exécution d’une requête visant à récupérer des milliers d’enregistrements d’une table utilisant plus d’un JOIN.

      Pourquoi MySQL renvoie-t-il l’erreur ‘Fichier de clés incorrect pour la table’ lors de l’exécution d’une requête ?

      Le message d’erreur MySQL complet “Incorrect key file for table ‘FILEPATH.MYI’ ; try to repair it” suggère que vous pouvez essayer de réparer la clé. L’examen de votre table FILEPATH peut vous aider à trouver plus de détails sur l’erreur :

      • Si le FILEPATH ressemble à ‘/tmp/#sql_xxxx.MYI‘, cela signifie que votre requête renvoie un ensemble de résultats volumineux. Le dossier/tmp utilisé pour stocker une table temporaire contenant l’ensemble des résultats est trop petit pour la taille de la requête. En fait, il n’y a pas assez d’espace dans votre dossier /tmp pour la table temporaire.
      • Si votre FILEPATH contient le nom de la table de la base de données, il est probable que votre table soit corrompue.

      Causes possibles de l’erreur MySQL ‘Fichier clé incorrect pour la table’ et leurs solutions

      L’erreur peut être due à un problème d’espace disque ou à une corruption de la table MySQL. Lisez la suite pour savoir comment résoudre ces deux problèmes.

      Cause 1 – Espace disque insuffisant dans le dossier temporaire (/Tmp)

      Remarque : vous n’obtiendrez pas cette erreur lors de l’exécution de requêtes individuelles, mais vous risquez de la rencontrer lors de l’exécution simultanée de requêtes volumineuses sur le même serveur MySQL.

      La raison principale de l’erreur MySQL “Fichier clé incorrect” est que votre requête récupère des données dont la taille est supérieure à celle de votre dossier /tmp (c’est-à-dire le dossier utilisé pour stocker les tables temporaires).

      Solution – Modifier l’emplacement du dossier “/temp”.

      Tout d’abord, vous devez déterminer si la partition du disque est pleine en examinant la taille du dossier /tmp. Exécutez la commande df avec l’option ‘-h‘ pour vérifier l’utilisation du disque du système de fichiers sous une forme lisible par l’homme :

      df -h

      Si la partition est pleine, modifiez l’emplacement du dossier /tmp sur un disque disposant de suffisamment d’espace libre. Modifiez l’emplacement du fichier dans le fichier de configuration de MySQL (.cnf).

      Parfois, le dossier /tmp est suffisamment grand, mais il peut quand même se remplir. Dans ce cas, vous devrez libérer de l’espace dans le dossier manuellement.

      Cause 2 – Clés ou table corrompues

      La corruption de la table est une autre raison qui peut entraîner l’erreur “Fichier clé incorrect pour la table”.

      Solution – Recréer ou réparer la table corrompue

      Pour résoudre le problème, supprimez/re-créez la table corrompue, puis réinsérez les données.

      Par exemple, dans la requête suivante, l’opération “DELETE” est utilisée pour supprimer la table et la commande “OPTIMIZE” TABLE est utilisée ensuite pour libérer de l’espace disque.

      mysql> DELETE tbl_name WHERE id < 200000 ;

      mysql> OPTIMIZE TABLE tbl_name ;

      Si vous ne pouvez pas réinsérer les données, essayez de réparer la table. Pour les tables MyISAM, vous pouvez utiliser la commande “REPAIR table” pour corriger la corruption :

      REPAIR TABLE tbl_name USE_FRM ;

      Cette commande ne fonctionne que sur les tables MyISAM. Pour réparer les tables avec le moteur de base de données InnoDB, consultez les meilleures façons de réparer une corruption de table InnoDB dans MySQL. Cependant, l’exécution d’une commande de réparation pour chacune des tables de la requête peut être un processus long et fastidieux.

      Que pouvez-vous faire d’autre pour réparer les tables corrompues ?

      Utilisez le logiciel Stellar Repair for MySQL pour réparer les tables corrompues. Le logiciel permet de réparer la base de données MySQL et tous ses objets rapidement en quelques clics. Il récupère toutes les données de la base de données corrompue sans perte de données.

      Conclusion

      Lorsque vous rencontrez l’erreur MySQL “Incorrect Key File for Table”, la première chose à faire est de vérifier l’emplacement du dossier /tmp afin de vous assurer qu’il dispose de suffisamment d’espace disque pour stocker les tables temporaires. Si ce n’est pas le cas, changez l’emplacement du dossier pour un disque disposant de suffisamment d’espace libre. S’il n’y a pas de problème d’espace disque, il y a de fortes chances que la table de votre base de données soit corrompue et doive être réparée. Si vous ne parvenez pas à réparer la table manuellement, le logiciel de MySQL database repair peut vous aider.

      Was this article helpful?

      No NO

      A propos de l'auteur

      Himanshu Shakya

      Himanshu is a Tech Enthusiast & Blogger at Stellar and having knowledge of Japanese Language. And apart from this in his spare time he likes playing Chess.

      Article similaire

      POURQUOI STELLAR® EST LE LEADER MONDIAL

      Pourquoi choisir Stellar?

      • 0M+

        Clients

      • 0+

        Années d'excellence

      • 0+

        Ingénieurs R&D

      • 0+

        Pays

      • 0+

        Témoignages

      • 0+

        Récompenses reçues