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
- Placez le
mytable.frm
dans le dossier/var/lib/mysql/mydata folder
sur Server-T - Placez le
mytable.ibd
dans le dossier/var/lib/mysql/mydata folder
sur Server-T - 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 !!!