IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration MySQL Discussion :

Incorrect key file


Sujet :

Administration MySQL

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2011
    Messages : 247
    Points : 163
    Points
    163
    Par défaut Incorrect key file
    Bonjour,

    J'utilise Ubuntu sur Windows 10 to pour faire tourner une base de données MySQL. Je viens d'importer une BDD qui m'a été envoyée sous forme de fichiers .frm, .my et .myd. Comme suggéré un peu partout sur les liens que j'ai pu trouver, j'ai copié tous les fichiers dans un dossier /var/lib/mysql/test. Je peux maintenant accéder à la base de données avec mon client MySQL et toutes les tables sont visibles, mais pas mal d'entre elles sont apparemment corrompues. J'ai en fait suivi les instructions décrites ici : https://stackoverflow.com/a/879268/1319182

    Voici ce que j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    mysql> select * from users;
    ERROR 1034 (HY000): Incorrect key file for table 'users'; try to repair it
    mysql> check table users;                                                                                               
    +------------+-------+----------+--------------------------------------------------------+ 
    | Table      | Op    | Msg_type | Msg_text  |
    +------------+-------+----------+--------------------------------------------------------+  
    | test.users | check | Error    | Incorrect key file for table 'users'; try to repair it |
    | test.users | check | error    | Corrupt                                                |                              +------------+-------+----------+--------------------------------------------------------+  
    2 rows in set (0.00 sec)    
    mysql> repair table users;      
    +------------+--------+----------+--------------------------------------------------------+
    | Table      | Op     | Msg_type | Msg_text  |
    +------------+--------+----------+--------------------------------------------------------+
    | test.users | repair | Error    | Incorrect key file for table 'users'; try to repair it |
    | test.users | repair | error    | Corrupt                                                |                             +------------+--------+----------+--------------------------------------------------------+
    2 rows in set (0.00 sec)
    mysql> repair table users USE_FRM; 
    +-------+--------+----------+-----------------------------------------+                                                 
    | Table | Op     | Msg_type | Msg_text                                |
    +-------+--------+----------+-----------------------------------------+ 
    | users | repair | error    | Failed repairing incompatible .frm file | 
    +-------+--------+----------+-----------------------------------------+ 
    1 row in set (0.00 sec)
    J'ai aussi essayé "myisamchk" sans succès.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    sudo myisamchk -r /var/lib/mysql/test/users.MYI                                                           
    - recovering (with sort) MyISAM-table '/var/lib/mysql/test/users.MYI'                                                   
    Data records: 2555                                                                                                      
    - Fixing index 1                                                                                                                
    - Fixing index 2                                                                                                        
    - Fixing index 3                                                                                                        
    - Fixing index 4                                                                                                        
    - Fixing index 5                                                                                                        
    - Fixing index 6                                                                                                            
    - Fixing index 7
    J'ai vu que cette erreur peut être causée par un manque d'espace dans le dossier /tmp, mais je suis sur une installation Windows avec une sorte de VM, et il ne semble pas y avoir de dossier /tmp.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     $ df -h                                                                                                               
     Filesystem      Size  Used Avail Use% Mounted on                                                                        
     rootfs          129G   78G   52G  60% /                                                                                 
     data            129G   78G   52G  60% /data                                                                             
     cache           129G   78G   52G  60% /cache                                                                            
     mnt             129G   78G   52G  60% /mnt                                                                              
     none            129G   78G   52G  60% /dev                                                                              
     none            129G   78G   52G  60% /run                                                                              
     none            129G   78G   52G  60% /run/lock                                                                         
     none            129G   78G   52G  60% /run/shm                                                                          
     none            129G   78G   52G  60% /run/user                                                                         
     C:              129G   78G   52G  60% /mnt/c                                                                            
     D:              120G   25G   95G  21% /mnt/d                                                                            
     H:              932G  926G  6.3G 100% /mnt/h                                                                            
     root            129G   78G   52G  60% /root                                                                             
     home            129G   78G   52G  60% /home
    Qu'est-ce que je peux essayer d'autre?

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    vous assurer que la base souce n'avait que des tables dont l'engine était Myisam
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  3. #3
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut dré kam.

    Citation Envoyé par dré kam
    J'utilise Ubuntu sur Windows 10 to pour faire tourner une base de données MySQL.
    Windows 10 est un OS, Ubuntu est un autre OS. Expliquez moi comment vous faites pour utiliser Ubuntu sous windows ?
    Franchement, je ne comprends pas !

    Citation Envoyé par dré kam
    Je viens d'importer une BDD qui m'a été envoyée sous forme de fichiers .frm, .my et .myd.
    Non, c'est une très mauvaise idée.
    Vous aurez plein de problèmes de compatibilités entre votre ancienne version mysql et la nouvelle.

    Citation Envoyé par dré kam
    J'ai en fait suivi les instructions décrites ici
    Au lieu de reprendre bêtement les conneries des autres, il faudrait commencer par apprendre à travailler correctement

    Citation Envoyé par dré kam
    Qu'est-ce que je peux essayer d'autre?
    Rien d'autre car vous perdez votre temps !

    Vous devez faire un "export" de votre ancienne base de données en utilisant "phpmyadmin".
    Vous obtenez un fichier de type "text" contenant l'extraction de votre base de données.
    Vous transférez ce fichier vers votre nouvel hébergeur.
    Puis dans la nouvelle base de données, faites un "import", toujours en utilisant "phpmyadmin".
    C'est la seule méthode fiable pour migrer une base de données, soit d'une version à une autre, soit d'un hébergeur à un autre.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2011
    Messages : 247
    Points : 163
    Points
    163
    Par défaut
    Citation Envoyé par Artemus24 Voir le message
    Windows 10 est un OS, Ubuntu est un autre OS. Expliquez moi comment vous faites pour utiliser Ubuntu sous windows ?
    Franchement, je ne comprends pas !
    Je fais allusion à la nouvelle feature introduite avec Windows 10.

    Citation Envoyé par Artemus24 Voir le message
    Non, c'est une très mauvaise idée.
    Vous aurez plein de problèmes de compatibilités entre votre ancienne version mysql et la nouvelle.
    Je sais bien, mais je n'ai pas le choix. C'est la seule trace de la base de données qui reste. Autrement l'export est bien entendu la meilleure des options.

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2011
    Messages : 247
    Points : 163
    Points
    163
    Par défaut
    Citation Envoyé par fadace Voir le message
    vous assurer que la base souce n'avait que des tables dont l'engine était Myisam
    Que faire dans le cas contraire? Je n'ai pas les fichiers ibd mentionnés dans la solution.

  6. #6
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut à tous.

    Citation Envoyé par dré kam
    Je fais allusion à la nouvelle feature introduite avec Windows 10.
    J'ai lu l'article et ce n'est pas ce que vous avez dit.
    il s’agit bien ici de l’interpréteur de ligne de commande Unix Bourne Again Shell sous licence GNU.
    donc aucun rapport avec un système d'exploitation Ubuntu.

    Le système d'exploitation est Windows 10, et en particulier, la version anniversaire (1607), à la condition d'installer l'interpréteur en ligne de commande BASH.
    Tout comme, on peut installer le langage PERL sous windows 10, qui (perl) est très utilisé dans le domaine Unix (Linux, Ubuntu, debian ...) à la place de Bash, Korn-shell, C-shell.

    Votre erreur est la suivante :
    Citation Envoyé par dré kam
    J'utilise Ubuntu sur Windows 10 to pour faire tourner une base de données MySQL.
    Je le répète, Ubuntu est un système d'exploitation et bash, un langage de commande qui ne fonctionne pas exclusivement sous Ubuntu.
    J'utilise Bash sous ma raspberry Pi 2 dont le système d'exploitation est Raspbian (raspberry + debian).

    Citation Envoyé par dré kam
    Je viens d'importer une BDD qui m'a été envoyée sous forme de fichiers .frm, .my et .myd.
    Les fichiers systèmes de MySql sont exploitables dans le système d'exploitation où ils ont été crées, pas ailleurs.
    Si vous changez de système d'exploitation, rien ne garantit que cela va encore fonctionner correctement.
    Ensuite, vous devez installer la même version MySql qui a été utilisé à l'origine.
    Si c'est MySql 5.6.35, vous devez installer cette version et pas une autre.

    Ensuite, vous devez récupérer le contenu du répertoire "/data" en totalité et pas uniquement les fichiers .frm, .my et .myd.
    En particulier, les fichiers "ibdata1", "ib_logfile0", "ib_logfile1", "ib_buffer_pool".
    Oui, je sais qu'ils concernent le moteur "InnoDB", mais ils font parties du coeur de MySql.

    Citation Envoyé par dré kam
    C'est la seule trace de la base de données qui reste.
    Que voulez-vous dire ? Qu'il s'agisse d'un backup destiné à une autre machine ?

    Citation Envoyé par dré kam
    Autrement l'export est bien entendu la meilleure des options.
    Pourquoi ne pas l'avoir fait au préalable ?

    Un backup sert à restaurer une configuration qui est :
    --> pour un système d'exploitation, par exemple Windows.
    --> qui tourne sur un ordinateur (et oui, cela dépend aussi du processeur).
    --> pour une version particulière de MySql.

    Une sauvegarde (entre autre un export), sert à migrer votre base de données dans une autre branche de mysql. Par exemple passer de MySql 5.6 à 7.0.
    Le fichier source est de type ".sql" et est destiné à rester compatible d'un système d'exploitation à un autre.

    Si vous ne respectez pas cela, rien ne peut vous garantir le bon fonctionnment de votre base de données migrée.
    Sinon, posez-vous la question de l'utilité de l'import et de l'export !
    A garantir la compatibilité de votre base de données d'un système d'exploitation à un autre, ou d'une branche de mysql à une autre.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2011
    Messages : 247
    Points : 163
    Points
    163
    Par défaut
    Citation Envoyé par Artemus24 Voir le message
    aucun rapport avec un système d'exploitation Ubuntu.
    Vu que le mot "Ubuntu" apparaît 22 fois dans l'article et qu'on y parle d'"environnement Ubuntu sous Windows", on ne peut pas vraiment dire qu'il n'y a "aucun rapport". Mais là n'est pas la question.

    Citation Envoyé par Artemus24 Voir le message
    Que voulez-vous dire ? Qu'il s'agisse d'un backup destiné à une autre machine ?
    Il s'agit d'un backup d'un ancien projet, et la base de données réelle n'est plus disponible.

    Citation Envoyé par Artemus24 Voir le message
    Pourquoi ne pas l'avoir fait au préalable ?
    Parce que ce n'est pas moi qui l'ai fait. Encore une fois, je suis bien conscient que ce n'est pas la meilleure des approches, mais je n'étais pas là au départ, il se trouve que je suis dans cette situation et je cherche une solution. Je n'ai pas non plus les fichiers "ibdata".
    Je vais vérifier la compatibilité des versions et tenter une nouvelle installation pour voir ce que ça donne.

  8. #8
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut dré kam.

    Citation Envoyé par dré kam
    Mais là n'est pas la question.
    En ce qui concerne votre problème avec MySql, oui, je suis d'accord.
    Mais il faudrait aussi apprendre à bien s'exprimer pour bien se faire comprendre.

    Citation Envoyé par dré kam
    Il s'agit d'un backup d'un ancien projet, et la base de données réelle n'est plus disponible.
    Et qu'est-ce que vous avez récupéré de ce backup ? Je suppose que ce sont les répertoires qui se trouvent dans "/data".

    Et que savez-vous de la version MySql qui a été utilisé au moment où le back up a été fait ?

    Citation Envoyé par dré kam
    Je n'ai pas non plus les fichiers "ibdata".
    Les suffixes suivants concernent :
    --> ".frm" et ".ibd", le moteur "InnoDB".
    --> ".myd" et ".myi", le moteur "MyIsam".

    Si vous devez récupérez des tables utilisant le moteur "InnoDB", le fichier "ibdata1" ne vous sert à rien.
    Si vos tables utilisent le moteur "InnoDB", vous êtes dans la merde ! Sans le fichier "ibdata1", vous n'aurez pas accès à ces tables.

    Citation Envoyé par dré kam
    Je vais vérifier la compatibilité des versions et tenter une nouvelle installation pour voir ce que ça donne.
    Dans un premier temps, cherchez la branche MySql qui serait compatible avec votre backup.
    Par exemple, si la branche est MySql 5.5, prenez la dernière release soit mysql 5.5.57.
    --> https://dev.mysql.com/downloads/mysq...html#downloads

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

Discussions similaires

  1. Réponses: 4
    Dernier message: 03/11/2013, 21h28
  2. MySql Incorrect key file
    Par Mengué georges dans le forum Outils
    Réponses: 1
    Dernier message: 03/04/2013, 08h12
  3. Problème de key (#file) dans package
    Par MAUGA dans le forum BOUML
    Réponses: 8
    Dernier message: 07/12/2008, 12h39
  4. requete et Incorrect key file
    Par xorax dans le forum Requêtes
    Réponses: 3
    Dernier message: 10/10/2008, 19h27
  5. Incorrect key file for table '/tmp/#sql_
    Par lasdou15 dans le forum Requêtes
    Réponses: 2
    Dernier message: 02/10/2008, 15h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo