sql >> Database teknologi >  >> RDS >> Mysql

Importer .frm- og .opt-filer til MySQL

For så vidt angår import af MySQL-data, skal tre(3) ting overvejes.

MyISAM

Import af en MyISAM-tabel er ganske enkelt som at flytte tre filer med filtypenavnet .frm , .MYD og .MYI filer for den givne tabel i en MySQL-mappe. For eksempel, hvis tabelnavnet er mydata, så de tre(3) filer

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

Følgende kunne være mareridtets mareridt. Import af InnoDB afhænger helt af mange faktorer, der falder ind under en af ​​to kategorier:

InnoDB (innodb_file_per_table deaktiveret [standard])

Alle InnoDB-data og indekssider er placeret i /var/lib/mysql/ibdata1 . Denne fil skal flyttes fra din kildemaskine (Server-S) til målmaskinen (Server-T) og placeres i den samme absolutte sti. Faktisk er her chokeren:Server-S og Server-T skal være de samme. Du kan med andre ord ikke importere og eksportere InnoDB .ibd filer til andre maskiner. De kan kun importeres og eksporteres på den samme maskine .ibd blev oprettet den.

Du skal også flytte /var/ib/mysql/ib_logfile0 og /var/ib/mysql/ib_logfile1 fra Server-S og placere dem i den samme absolutte sti på Server-T.

Du skal også sørge for, at hver InnoDB-variabel, der er sat i /etc/my.cnf fra Server-S, skal indstilles i /etc/my.cnf på Server-T.

InnoDB (innodb_file_per_table aktiveret)

For hver InnoDB-tabel vil der være to filer. For eksempel, hvis InnoDB-tabellen i mydata-databasen hedder mytable, vil du have /var/lib/mysql/mydata/mytable.frm og /var/lib/mysql/mydata/mytable.ibd. .ibd fil indeholder data og indekssider for tabellen. For at importere den enkelte tabel skal du

  1. Placer mytable.frm i /var/lib/mysql/mydata folder på Server-T
  2. Placer mytable.ibd i /var/lib/mysql/mydata folder på Server-T
  3. Kør ALTER TABLE mydata.mytable IMPORT TABLESPACE;

Sørg for at du har /var/lib/mysql/ibdata1 samme sted som den blev importeret fra.

Historiens moral

Brug venligst ikke IMPORT TABLESPACE-teknikker på tværs af forskellige servere. Bare lav en mysqldump af alt og importer mysqldump. Logiske dumps er altid den sikreste vej at gå !!!



  1. Hvordan indsætter jeg en dato i mysql som en parameter?

  2. Oprettelse af rabatkodesystem (MySQL/php)

  3. Data tutorial:Brug af vinduesfunktioner

  4. mysqldump fejl:Fik pakke større end max_allowed_packet'