2010-04-08 28 views
19

On suppose que les fichiers MySQL suivants ont été restaurés à partir d'une bande de sauvegarde:Comment recréer une table MySQL InnoDB à partir d'un fichier .ibd?

  • tablename.frm
  • tablename.ibd

De plus, supposons que l'installation de MySQL est en cours d'exécution avec innodb_file_per_table et que la base de données était proprement arrêt avec mysqladmin shutdown.

Étant donné une nouvelle installation de la même version de MySQL que les fichiers MySQL restaurés, comment puis-je importer les données from tablename.ibd/tablename.frm dans cette nouvelle installation?

+0

Je ne suis pas sûr que ce soit possible, car même si innodb utilise un fichier par table, il y a encore de la connerie dans le fichier central idbdata qui est lié aux tables existantes. –

+0

Omry: Techniquement, cela devrait être possible AFAIK. N'hésitez pas à me prouver le contraire :-) – knorv

+3

Cela n'appartient pas ici, ce n'est pas lié à la programmation. Aller à l'échange DBA. Il y a plusieurs questions similaires là-bas ... http://dba.stackexchange.com/questions/16875/mysql-how-to-restore-table-stored-in-a-frm-and-a-ibd-file – Cylindric

Répondre

-1

Si vous venez de remplacer la bande de formulaire de fichiers existants, exécutez CHECK TABLE (http://dev.mysql.com/doc/refman/5.6/en/check-table.html) et voyez si cela fonctionne.

Si la table n'existe pas, essayez les options suivantes.

  • Créer la table dans l'invite mysql
  • Rechute le fichier .idb et le fichier .frm
  • Run CHECK TABLE
-1

Ceci peut ne pas fonctionner dans tous les cas. Mais oui cela fonctionne dans certains cas ...

Arrêtez d'abord tous les services liés à wamp ou xampp que vous utilisez.

copie et ensuite passé le tablename.frm, tablename.ibd

fichiers sous mysql/data/BASE DE DONNÉES NOM DE DOSSIER. puis redémarrez tous les services. la tablette créée sous cette base de données.

+0

Vous ne pouvez le faire qu'avec le type de table MyISAM (tablename.frm nom_table.MYD nom_table.MYI) InnoDB n'affichera que les noms de table sans contenu. Le type de table InnoDB est complexe. lien d'aide: http://stackoverflow.com/questions/5745221/import-frm-and-opt-files-to-mysql –

3

Une chose similaire est répondu ici. s'il vous plaît consulter https://stackoverflow.com/a/10943833/3985205

Oui cela est possible. Il ne suffit pas de copier les fichiers .frm dans le dossier de la base de données, mais vous devez également copier le fichier ib_logfiles et le fichier ibdata dans votre dossier de données. Je viens de copier les fichiers .frm et de copier ces fichiers et de simplement redémarrer le serveur et ma base de données est restaurée.

0

J'ai posté la bonne solution quand vous avez perdu le fichier ib_logfiles et ibdata et vous avez seulement .frm et .idb fichiers.

S'il vous plaît jeter un oeil à mon commentaire sur ce lien:

Restore table structure from frm and ibd files

Cela fonctionnera pour vous aussi.

Merci.