Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Importieren Sie .frm- und .opt-Dateien in MySQL

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

  1. Platzieren Sie mytable.frm im Ordner /var/lib/mysql/mydata folder auf Server-T
  2. Platzieren Sie die mytable.ibd im Ordner /var/lib/mysql/mydata folder auf Server-T
  3. 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 !!!