Mysql
 sql >> Base de données >  >> RDS >> Mysql

Importer des fichiers .frm et .opt vers MySQL

En ce qui concerne l'importation de données MySQL, trois (3) éléments doivent être pris en compte.

MonISAM

Importer une table MyISAM est aussi simple que de déplacer trois fichiers avec les extensions .frm , .MYD , et .MYI fichiers pour la table donnée dans un dossier MySQL. Par exemple, si le nom de la table est mydata, alors les trois (3) fichiers

  • mydata.frm
  • mydata.MYD
  • mydata.MYI

Ce qui suit pourrait être le cauchemar des cauchemars. L'importation d'InnoDB dépend entièrement de nombreux facteurs qui entrent dans l'une des deux catégories :

InnoDB (innodb_file_per_table désactivé [par défaut])

Toutes les pages de données et d'index InnoDB sont situées dans /var/lib/mysql/ibdata1 . Ce fichier doit être déplacé de votre machine source (Server-S) vers la machine cible (Server-T) et placé dans le même chemin absolu. En fait, voici le choc :Server-S et Server-T doivent être identiques. En d'autres termes, vous ne pouvez pas importer et exporter InnoDB .ibd fichiers vers d'autres machines. Ils ne peuvent être importés et exportés que sur la même machine le .ibd a été créé le.

Vous devrez également déplacer /var/ib/mysql/ib_logfile0 et /var/ib/mysql/ib_logfile1 de Server-S et les placer dans le même chemin absolu sur Server-T.

Vous devez également vous assurer que chaque variable InnoDB définie dans /etc/my.cnf depuis Server-S doit être définie dans /etc/my.cnf sur Server-T.

InnoDB (innodb_file_per_table activé)

Pour chaque table InnoDB, il y aura deux fichiers. Par exemple, si la table InnoDB dans la base de données mydata s'appelle mytable, vous aurez /var/lib/mysql/mydata/mytable.frm et /var/lib/mysql/mydata/mytable.ibd. Le .ibd Le fichier contient des données et des pages d'index pour la table. Pour importer la table individuelle, vous devez

  1. Placez le mytable.frm dans le dossier /var/lib/mysql/mydata folder sur Server-T
  2. Placez le mytable.ibd dans le dossier /var/lib/mysql/mydata folder sur Server-T
  3. Exécutez ALTER TABLE mydata.mytable IMPORT TABLESPACE;

Assurez-vous d'avoir le /var/lib/mysql/ibdata1 au même endroit d'où il a été importé.

Morale de l'histoire

Veuillez ne pas utiliser les techniques IMPORT TABLESPACE sur différents serveurs. Faites simplement un mysqldump de tout et importez le mysqldump. Les dumps logiques sont toujours le chemin le plus sûr !!!