
Restaurer votre base de données grâce aux 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.
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.
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.
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
Merci , votre expérience m’a sauvé la vie . je suis parvenu à récupérer à restaurer ma base.
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
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
merci pour cet article :)))
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
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,
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
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 !
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
Tant que j’y suis, est-ce que les fichiers ib_logfile ont une importance?
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
Merci merci merci !! Je croyais avoir tout perdu…. Sauvée !
Bonjour à Tous et à Toutes
Je remercie grandement Tibow Webdesign car cette solution vient de me sauver la vie. Merci encore.
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.
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
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 🙂
Merci pour ce tuto, mais chez moi ça ne marche pas, les tables sont toujours vides…
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
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 ?
Merci bcp pour ce Tuto qui ma sauvé la vie
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
Très bien, sa marche, merci
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