Restaurer une base de données MySQL à partir des fichiers .frm

restaurer-BDD-Wamp-frm
Web pratique Lecture 3 minutes • 9 février 2014

Restaurer votre base de données grâce aux fichiers .frm

Restaurer une BDD MySQL à partir des fichiers .frm

Si vous avez besoin de restaurer une base de données MySQL à partir des fichiers qui étaient sur ​​un serveur local, mais que vous n'avez pas fait de sauvegarde du fichier SQL ou bien que vous l'avez perdu, ne désespérez pas il existe une solution !

Ayant moi même subit un crash de disque dur, j'ai pu le réparer mais une partie des fichiers étaient corrompu et je ne pouvait plus accéder à PHPmyAdmin pour extraire la base SQL de mon projet de site web en local.

Pré-requis avant toute manipulation de la base de données

Je prendrais pour exemple  WAMP dans cet article, puisque c'est avec ce logiciel que je travail, et avec lequel j'ai vécu cette situation quelque peu délicate.

- Sauvegardez tout votre dossier WAMP sur un DD externe ou une clé USB (je qualifierai cette sauvegarde en l'appelant "ancien serveur" dans cet article).
- Nous allons repartir d'une installation WAMP neuve et propre sur votre ordinateur.

Télécharger WAMP

Les étapes pour réparer sa base de données avec les fichiers .frm

Étape 1
Avant de commencer, vous devez arrêter les services de WAMP.

Étape 2
Sur votre ancien serveur (dans votre DD externe/clé USB) ou est stocké votre site, naviguez jusqu'au dossier dossier data de MySQL.
Le chemin doit ressembler à ça “D:\wamp\bin\mysql\mysql5.1.53\data\” ou “mysql5.1.53″ indique la version de la précédente base de données MySQL installée.

Étape 3
A l'intérieur de ce dossier data, il doit y avoir plusieurs fichiers et dossiers. Les dossiers contiennent les bases de données des sites actuels et contiennent un tas de fichiers avec l'extension .frm dont nous aurons besoin.
Vous devriez reconnaitre des noms de fichiers ou de base de données qui vous sont familiers.

Étape 4
Copiez directement le dossier contenant les données de votre site et tout son contenu dans le dossier data de votre nouvelle installation de WAMP. Il n'est pas nécessaire de copier les bases de données installées par WAMP par défaut, à savoir : "mysql", "performance_schema" et "test".

Étape 5
Redémarrez maintenant les serveurs WAMP, et rendez-vous dans phpmyadmin.
Vous constatez alors que les noms des bases de données sont présentes, mais que les tables sont vides...
Pas de panique, c'est normal, nous allons rétablir leur contenu !

 Étape 6
Retournez dans le dossier data de votre ancien serveur : “D:\wamp\bin\mysql\mysql5.1.53\data\”. Un fichier  nommé "ibdata1" doit s'y trouver. Copiez le.

Étape 7
Sur votre nouveau serveur, dans le dossier data, il y a également un fichier "ibdata1" présent.
Renommez le en "ibdata.bak", puis collez le "ibdata1" que l'on a précédemment copier depuis l'ancien serveur.

Étape 8
Enfin, redémarrez les services de WAMP.
Puis allez dans PHPmyAdmin et vérifiez que vos bases ont bien été restaurées avec succès ! 👏

Besoin d'un expert pour améliorer les performances de votre site internet ?

Contactez-moi pour en discuter ensemble !
Recevez un audit et une estimation gratuite des optimisations à apporter à votre site web.

26 réponses à “Restaurer une base de données MySQL à partir des fichiers .frm”

  1. Tojo Antonio dit :

    Slt, ton post est très intéressant, j’ai malheureusement un problème avec la restoration de ma base de donnée mysql, en effet j’ai pas le fichier ibdata1 dans le dossier « data » de mon ancien serveur. Est-il alors impossible de retrouver mes bases de données? Merci d’avance pour ta réponse.

    • admin dit :

      Bonjour Antonio,
      le fichier “ibdata1″ est le fichier qui stocke les tables de ta base de données, qui sont indispensables au bon fonctionnement. Il devrait donc être présent dans le dossier « data ». Peux-tu me dire quels fichiers tu as dans ton ancien dossier « data » ?
      Cdlt

  2. sosthene dit :

    Merci , votre expérience m’a sauvé la vie . je suis parvenu à récupérer à restaurer ma base.

  3. Secotech dit :

    Bonjour,
    Tout fonctionne pour moi sauf qu’au moment où je colle l’ancien fichier ibdata1 à la place de l’ancien. MAMP ne veut plus démarrer le serveur SQL. Une fois que je remets celui d’origine de l’installation, tout refonctionne.
    Une solution pour moi ?
    Merci d’avance

  4. SEB dit :

    Merci merci merci !
    Je suis sous mac et votre solution m’a beaucoup inspiré pour résoudre mon problème …
    Suite a une installation du dernier OS Yosemite, mamp (wamp pour mac) ne tournais plus…
    J’avais en ma seule possession une sauvegarde du dossier db(data pour pc), j’ai put grace à vous résoudre mon problème …
    mille merci de m’avoir aidé a retrouver mes bases de plus de 5 ans de boulot …

    • Bonjour SEB, et merci pour le commentaire.
      Heureux que mon petit tuto vous ait sauver la mise, n’hésitez pas à le faire circuler sur les réseaux sociaux ou à vos collègues dans le besoin.
      Je vois que vous avez résolu le problème sous OS Mac et donc avec Mamp. Le détail de votre démarche est le bienvenue pour les éventuels utilisateurs de Mamp dans la même situation que vous.
      Cordialement

  5. dali dit :

    merci pour cet article :)))

  6. Guillaume dit :

    Bonjour,
    Merci pour ceux tuto,
    pour ma part, je vois bien les tables dans phpmyadmin mais quand je clique dessus j’ai une erreur #1146 – Table ‘ma_base.ma_table’ doesn’t exist
    Une idée ?
    Merci à vous

  7. Quentin dit :

    Bonjour,
    cette solution aurais pu me sauver la vie, mais hélas elle ne fonctionne pas.
    Je suis sous MAC sous MAMP, j’ai copier le contenu de mon dossier db (data pour pc), lorsque je redémarre MAMP la base de données n’apparait pas dans phpMyAdmin, et même en y rajoutant le fichier ibdata1, cela ne change rien.
    Quelqu’un aurait-il une solution ?
    Cordialement,

  8. Yes52 dit :

    Bonjour,
    Merci pour ce tuto qui m’a permis comme a d’autres de recuperer mes bases de donnees.
    Pour SECOTECH et ceux qui viendront sur ce site, il m’est arrive le meme probleme que toi.
    Je l’ai resolu en changeant les droits sur les fichiers (je travail avec ubuntu 14.04 et j’ai crashe le secteur de boot ).
    sudo chown -R mysql:mysql /var/lib/mysql/
    Merci d’excuser le manque d’accents car je suis actuellement sur un live CD en clavier qwerty

  9. Mélanie dit :

    Oh purée… Merci ! Merci ! Merciiii !
    La journée démarre sous de meilleurs auspices que prévu. J’ai suivi la démarche et j’ai pu tout récupérer sans souci. Je suis sous Mac (donc j’utilise MAMP), le chemin d’accès est un peu différent : Applications > MAMP > db > mysql
    Encore merci !

  10. Unknw dit :

    Merci cette procédure l’a sauvé la vie suite à un hack de mon serveur je n’avais plus accès qu’au FTP, donc impossible de créer un dump des bases de données…
    Je précise que j’ai appliqué la procédure sous Debian, il suffit d’installer mysql, de le stopper, de copier les fichiers dans /var/lib/mysql de redémarrer puis de copier le ibdata1.
    Encore merci

  11. Mille mercis.
    Cette technique est d’une simplicité et d’une efficacité extraordinaire.
    Quel gain de temps !
    J’avais eu plusieurs fois ce type de problème suite à des pannes et des base non sauvegardées ni exportées.
    Très cordialement
    JPS

  12. cimisa53 dit :

    Merci merci merci !! Je croyais avoir tout perdu…. Sauvée !

  13. Houssein NDAM dit :

    Bonjour à Tous et à Toutes
    Je remercie grandement Tibow Webdesign car cette solution vient de me sauver la vie. Merci encore.

  14. devinc dit :

    Bonsoir,
    J’utilise Xampp comme serveur local sur mon PC j’ai eu un souci sur mon disque dur j’ai récupérer le contenu du fichier data, mais je constate que mes table sont vident :(.
    J’ai par la suite suivi votre conseil en renommant le fichier de base en ibdata.bak, et en récupérant l’ancien et le coller sur le nouveau fichier
    Quand je relance xampp et j’active Mysql gros Bug Impossible de démarrer Mysql est ce que vous aurez une solution pour moi ?
    Cordialement.

  15. Greg dit :

    Génial! Ça fonctionne!
    Précision : à utiliser dans la dernière version MySQL proposée, même si elle diffère d’une install à une autre

  16. David Judenne dit :

    Super merci a toi, j’avais réussi a copié la base de donnée et la plus part des bases étaient ok sauf certaine, après la copie du fichier ibdata1 résolué, merci a toi 🙂

  17. Antoine dit :

    Merci pour ce tuto, mais chez moi ça ne marche pas, les tables sont toujours vides…

  18. Phil dit :

    Bonjour,
    J’utilise WAMP et n’ai plus accès à PHPMYADMIN du fait d’une BDD vérolée avec de multiples ‘erreurs du type :
    . [ERROR] InnoDB: Table XXXX/yyyy_acymailing_action in the InnoDB data dictionary has tablespace id 3051, but tablespace with that id or name does not exist. Have you deleted or moved .ibd files? This may also be a table created with CREATE TEMPORARY TABLE whose .ibd and .frm files MySQL automatically removed, but the table still exists in the InnoDB internal data dictionary.
    J’ai créé dans la BDD concernée un fichier yyyy_acymailing_action.frm. L’erreur persiste.
    Par l’explorateur WINDOWS, j’ai viré la BDD et tous les fichiers correspondants situés dans le répertoire www de WAMP. L’erreur persiste.
    Que faire ?
    Merci de vos réponses
    Philippe

  19. Phil dit :

    A l’heure actuelle, tous les sites présents sur WAMP et utilisant une BDD sont inaccessibles, du fait du blocage des services MySQL de PHPMYADMIN
    A la limite, je préfère virer la BDD vérolée et le site s’y rapportant pour récupérer l’usage de PHPMYADMIN et des autres site.
    Que me conseillez-vous ?

  20. dani dit :

    Merci bcp pour ce Tuto qui ma sauvé la vie

  21. Nytho dit :

    Bonjour et merci pour ce tuto
    De mon coté la méthode la pas marché. Après redemarrage de mon wamp, mon wamp n’est pas passé en vert donc pas d’accès à mon phpùyadmin, que faire?
    Urgent pour moi je galère trop

  22. Chems eddne dit :

    Très bien, sa marche, merci

  23. John dit :

    Super tuto, très simple merci!!!
    Sur tous les forums on lit un ramassis de bêtises, qui aboutissent toujours à la même conclusion : ‘fallait exporter votre BD’.
    J’avais bien copié le fichier en question pour faire la restauration sur le nouveau serveur mais ça l’avait remplacé visiblement… c’est tout con

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *