[mysql] Restauration du dossier data - Table machin does not exist

Bonjour,

Après avoir rencontré des problèmes avec mon pc, j’ai du tout réinstaller. Là je bloque un peu sur la restauration de MySQL. En effet, j’avais gardé une copie du dossier data pour pouvoir restaurer mes données.

J’ai donc installé MySQL, j’ai lancé l’instance, arrété MySQL, balancé ma sauvegarde du dossier data (sauf ib_logfile0 et ib_logfile1 car je sais pas c’est quoi).

Après ça, dans phpMyAdmin, je peux voir toutes mes tables mais elles sont innaccessibles ! Toujours la même erreur : Table ‘xxx.xxx’ doesn’t exist

Que faire ?

Criser?

Les fichiers ib_logfile0 et ib_logfile1 c’est du InnoDB. Et ils sont important je crois bien.

(au passage, tu as un utilitaire de backup dans mySQL Administrator).

Oui donc, j’ai arrété MySQL, vidé le dossier data, restauré TOUS les fichiers…

Dans ce cas, MySQL ne démarre plus : erreur 1067 : le service s’est arrété innopinément.
Dans le log il y a

Sinon je ne pense pas posséder l’utilitaire de backup…

Je ne sais pas ce que contiennent ces fichiers, mais c’est probablement des informations sur les index, les clés, la structure des données…
Donc si tu as noté dans un coin la structure des tables, tu peux peut-être recréer des tables vides afin que MySQL recréé les fichiers dont il a besoin, avant ensuite de remplacer les fichiers de données par les tiens ?

A l’avenir, pense à faire un dump de tes bases de données avant de réinstaller (phpmyadmin le gère), c’est ultra simle ensuite à redéployer.

MySQL Administrator le gère, et fait ça mieux pour ce qui est des dump :slight_smile:

Ok, je l’ai fait en console sous Linux. Là il est sous windows et je ne connaissais que phpMyAdmin.

Bon je relance le sujet, j’étais un peu pris par le temps.

J’ai installé MySQL Administrator (très sympa cet outil au passage). Après avoir regardé l’état de mes bases je remarque ceci : toutes les tables sont ok sauf celles qui utilisaient InnoDB. Elles apparaissent en rouge et je ne peux en tirer aucune info. Il y a toujours écris partout ‘Tables db.table doesn’t exist’.

J’ai donc tenté toutes les options de réparations :

Optimize donne :
Table icda.main_logins optimized.
Table ‘icda.main_logins’ doesn’t exist

Le Check (toutes methodes) donne :
Status checked for table icda.main_logins.
Table ‘icda.main_logins’ doesn’t exist

Le repair (toutes méthodes) donne :
Table icda.main_logins repaired.
Table ‘icda.main_logins’ doesn’t exist

Bref, pas cool :grrr:

Up :heink:

(Mon intervention ne risque pas de faire avancer le problème de SandRock Mp4, c’est juste une remarque par rapport aux dire de jeanguy)

Moi je copiais le dossier data (ainsi que le fichier my.ini) d’une installation de MySQL à l’autre et ça fonctionnait très bien.

Maintenant je ne fais plus comme ça : Désormais mon dossier data et le fichier my.ini MySQL sont déportés sur mon disque dur de données (qui ne comporte pas le système : et que je ne formate pas lorsque Windows fait des siennes).
Pour cela, il suffit d’utiliser l’option –defaults-file de mysqld.exe pour lui indiquer la position du fichier my.ini. Et dans ce fichier, il faut renseigner correctement le champ datadir qui indique la position du dossier data.

Voilà, et bonne chance à SandRock Mp4.