Beim Importieren von MySQL-Daten müssen drei (3) Dinge beachtet werden.
MyISAM
Das Importieren einer MyISAM-Tabelle ist so einfach wie das Verschieben von drei Dateien mit den Erweiterungen .frm
, .MYD
, und .MYI
Dateien für die angegebene Tabelle in einen MySQL-Ordner. Wenn der Tabellenname beispielsweise mydata ist, dann die drei (3) Dateien
mydata.frm
mydata.MYD
mydata.MYI
Das Folgende könnte der Albtraum der Albträume sein. Der Import von InnoDB hängt vollständig von vielen Faktoren ab, die in eine von zwei Kategorien fallen:
InnoDB (innodb_file_per_table deaktiviert [Standard])
Alle Daten- und Indexseiten von InnoDB befinden sich in /var/lib/mysql/ibdata1
. Diese Datei muss von Ihrem Quellcomputer (Server-S) auf den Zielcomputer (Server-T) verschoben und im selben absoluten Pfad abgelegt werden. Tatsächlich ist hier der Schocker:Server-S und Server-T müssen gleich sein. Mit anderen Worten, Sie können InnoDB .ibd
nicht importieren und exportieren Dateien auf andere Maschinen. Sie können nur auf demselben Computer importiert und exportiert werden, die .ibd
wurde erstellt am.
Sie müssten auch /var/ib/mysql/ib_logfile0 und /var/ib/mysql/ib_logfile1 von Server-S verschieben und sie im selben absoluten Pfad auf Server-T platzieren.
Sie müssen auch sicherstellen, dass jede InnoDB-Variable, die in /etc/my.cnf von Server-S gesetzt wird, in /etc/my.cnf auf Server-T gesetzt werden muss.
InnoDB (innodb_file_per_table aktiviert)
Für jede InnoDB-Tabelle gibt es zwei Dateien. Wenn beispielsweise die InnoDB-Tabelle in der Datenbank mydata mytable heißt, haben Sie /var/lib/mysql/mydata/mytable.frm
und /var/lib/mysql/mydata/mytable.ibd. Die .ibd
Datei enthält Daten- und Indexseiten für die Tabelle. Um die einzelne Tabelle zu importieren, müssen Sie
- Platzieren Sie
mytable.frm
im Ordner/var/lib/mysql/mydata folder
auf Server-T - Platzieren Sie die
mytable.ibd
im Ordner/var/lib/mysql/mydata folder
auf Server-T - Führen Sie
ALTER TABLE mydata.mytable IMPORT TABLESPACE;
aus
Stellen Sie sicher, dass Sie die Datei /var/lib/mysql/ibdata1
haben an der gleichen Stelle, von der es importiert wurde.
Moral der Geschichte
Bitte verwenden Sie keine IMPORT TABLESPACE-Techniken über verschiedene Server hinweg. Machen Sie einfach einen mysqldump von allem und importieren Sie den mysqldump. Logische Dumps sind immer der sicherste Weg !!!