sql >> Databáze >  >> RDS >> Mysql

Importujte soubory .frm a .opt do MySQL

Pokud jde o import jakýchkoli dat MySQL, je třeba zvážit tři (3) věci.

MyISAM

Import tabulky MyISAM je jednoduchý jako přesun tří souborů s příponami .frm , .MYD a .MYI soubory pro danou tabulku do složky MySQL. Pokud je například název tabulky mydata, pak tři (3) soubory

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

Následující by mohla být noční můra nočních můr. Import InnoDB zcela závisí na mnoha faktorech, které spadají do jedné ze dvou kategorií:

InnoDB (innodb_file_per_table zakázáno [výchozí])

Všechna data a indexové stránky InnoDB jsou umístěny v /var/lib/mysql/ibdata1 . Tento soubor je nutné přesunout ze zdrojového počítače (Server-S) do cílového počítače (Server-T) a umístit do stejné absolutní cesty. Ve skutečnosti je zde šokující:Server-S a Server-T musí být stejné. Jinými slovy, nemůžete importovat a exportovat InnoDB .ibd soubory na jiné stroje. Lze je importovat a exportovat pouze na stejném počítači jako .ibd byl vytvořen dne.

Také byste museli přesunout /var/ib/mysql/ib_logfile0 a /var/ib/mysql/ib_logfile1 ze Server-S a umístit je do stejné absolutní cesty na Server-T.

Musíte se také ujistit, že každá proměnná InnoDB nastavená v /etc/my.cnf ze Server-S musí být nastavena v /etc/my.cnf na Server-T.

InnoDB (innodb_file_per_table povoleno)

Pro každou tabulku InnoDB budou dva soubory. Pokud se například tabulka InnoDB v databázi mydata nazývá mytable, budete mít /var/lib/mysql/mydata/mytable.frm a /var/lib/mysql/mydata/mytable.ibd. Soubor .ibd soubor obsahuje data a indexové stránky pro tabulku. Chcete-li importovat jednotlivé tabulky, musíte

  1. Umístěte soubor mytable.frm ve složce /var/lib/mysql/mydata folder na Server-T
  2. Umístěte soubor mytable.ibd ve složce /var/lib/mysql/mydata folder na Server-T
  3. Spusťte ALTER TABLE mydata.mytable IMPORT TABLESPACE;

Ujistěte se, že máte /var/lib/mysql/ibdata1 na stejném místě, odkud byl importován.

Morálka příběhu

Nepoužívejte prosím techniky IMPORTU TABLESPACE na různých serverech. Stačí udělat mysqldump všeho a importovat mysqldump. Logické skládky jsou vždy nejbezpečnější cestou !!!



  1. Vyberte a zobrazte pouze duplicitní záznamy v MySQL

  2. Omezení flexibility dat v databázi NoSQL

  3. Poddotaz Oracle nevidí proměnnou z vnějšího bloku o 2 úrovně výše

  4. Failover &Failback pro PostgreSQL v Microsoft Azure