web-dev-qa-db-fra.com

Comment recréer une table MySQL InnoDB à partir d'un fichier .ibd?

Supposons que les fichiers MySQL suivants ont été restaurés à partir d'une bande de sauvegarde:

  • tablename.frm
  • tablename.ibd

De plus, supposons que l'installation de MySQL était exécutée avec innodb_file_per_table et que la base de données a été correctement arrêtée avec mysqladmin shutdown.

Etant donné une nouvelle installation de la même version de MySQL à laquelle les fichiers MySQL restaurés ont été extraits, comment puis-je importer les données from tablename.ibd/tablename.frm dans cette nouvelle installation?

19
knorv

Une réponse similaire est donnée ici. Veuillez consulter https://stackoverflow.com/a/10943833/3985205

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

3
Snehasish Sarkar

J'ai posté la bonne solution lorsque vous avez perdu le fichier ib_logfiles et ibdata et que vous ne disposiez que de fichiers .frm et .idb.

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

Restaurer la structure de table à partir de fichiers frm et ibd

Cela fonctionnera pour vous aussi.

Je vous remercie.

0
Jin Lin

Vous devez amener la table dans le tablespace:

https://www.percona.com/doc/percona-xtrabackup/2.2/innobackupex/restoring_individual_tables_ibk.html

ALTER TABLE mydatabase.tablename IMPORT TABLESPACE;

Vous devez également posséder un fichier exp/cfg.

0
Sergiy Tytarenko