sql >> Databasteknik >  >> RDS >> Mysql

Importera .frm- och .opt-filer till MySQL

När det gäller import av MySQL-data måste tre(3) saker beaktas.

MyISAM

Att importera en MyISAM-tabell är enkelt som att flytta tre filer med tilläggen .frm , .MYD och .MYI filer för den givna tabellen till en MySQL-mapp. Till exempel, om tabellnamnet är mydata, då de tre(3) filerna

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

Följande kan vara mardrömmarnas mardröm. Import av InnoDB beror helt på många faktorer som faller inom en av två kategorier:

InnoDB (innodb_file_per_table inaktiverad [standard])

Alla InnoDB-data och indexsidor finns i /var/lib/mysql/ibdata1 . Den här filen måste flyttas från din källmaskin (Server-S) till måldatorn (Server-T) och placeras i samma absoluta sökväg. Faktum är att här är chockeraren:Server-S och Server-T måste vara samma. Du kan med andra ord inte importera och exportera InnoDB .ibd filer till andra maskiner. De kan bara importeras och exporteras på samma maskin som .ibd skapades den.

Du skulle också behöva flytta /var/ib/mysql/ib_logfile0 och /var/ib/mysql/ib_logfile1 från Server-S och placera dem i samma absoluta sökväg på Server-T.

Du måste också se till att varje InnoDB-variabel som ställs in i /etc/my.cnf från Server-S måste ställas in i /etc/my.cnf på Server-T.

InnoDB (innodb_file_per_table aktiverad)

För varje InnoDB-tabell kommer det att finnas två filer. Till exempel, om InnoDB-tabellen i mydata-databasen kallas mytable, kommer du att ha /var/lib/mysql/mydata/mytable.frm och /var/lib/mysql/mydata/mytable.ibd. .ibd filen innehåller data och indexsidor för tabellen. För att importera den enskilda tabellen måste du

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

Se till att du har /var/lib/mysql/ibdata1 på samma plats som den importerades från.

Berättelsens moral

Använd inte IMPORT TABLESPACE-tekniker på olika servrar. Gör bara en mysqldump av allt och importera mysqldumpen. Logiska soptippar är alltid den säkraste vägen att gå !!!



  1. Hur man använder JDBC för att ansluta MySql-databas

  2. Hur man beräknar ålder (i år) baserat på födelsedatum och getDate()

  3. Hur man designar ett geografiskt distribuerat MariaDB-kluster

  4. Returnera en lista över triggers i SQL Server