Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Importuj pliki .frm i .opt do MySQL

Jeśli chodzi o importowanie jakichkolwiek danych MySQL, należy wziąć pod uwagę trzy (3) rzeczy.

MyISAM

Importowanie tabeli MyISAM jest tak proste, jak przeniesienie trzech plików z rozszerzeniami .frm , .MYD i .MYI pliki dla podanej tabeli do folderu MySQL. Na przykład, jeśli nazwa tabeli to mydata, to trzy (3) pliki

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

To może być koszmar koszmarów. Importowanie InnoDB zależy całkowicie od wielu czynników, które należą do jednej z dwóch kategorii:

InnoDB (innodb_file_per_table wyłączone [domyślnie])

Wszystkie dane i strony indeksowe InnoDB znajdują się w /var/lib/mysql/ibdata1 . Ten plik należy przenieść z maszyny źródłowej (Server-S) na maszynę docelową (Server-T) i umieścić w tej samej ścieżce bezwzględnej. W rzeczywistości tu jest szok:Server-S i Server-T muszą być takie same. Innymi słowy, nie można importować i eksportować pliku InnoDB .ibd pliki na inne komputery. Można je importować i eksportować tylko na tym samym komputerze co .ibd został utworzony dnia.

Trzeba by również przenieść /var/ib/mysql/ib_logfile0 i /var/ib/mysql/ib_logfile1 z serwera-S i umieścić je w tej samej ścieżce bezwzględnej na serwerze-T.

Musisz również upewnić się, że każda zmienna InnoDB ustawiona w /etc/my.cnf z serwera-S musi być ustawiona w /etc/my.cnf na serwerze-T.

InnoDB (innodb_file_per_table włączone)

Dla każdej tabeli InnoDB będą dwa pliki. Na przykład, jeśli tabela InnoDB w bazie danych mydata nazywa się mytable, będziesz miał /var/lib/mysql/mydata/mytable.frm i /var/lib/mysql/mydata/mytable.ibd. .ibd plik zawiera dane i strony indeksowe dla tabeli. Aby zaimportować pojedynczą tabelę, musisz

  1. Umieść mytable.frm w /var/lib/mysql/mydata folder na serwerze T
  2. Umieść mytable.ibd w /var/lib/mysql/mydata folder na serwerze T
  3. Uruchom ALTER TABLE mydata.mytable IMPORT TABLESPACE;

Upewnij się, że masz /var/lib/mysql/ibdata1 w tym samym miejscu, z którego został zaimportowany.

Moralność historii

Nie używaj technik IMPORTOWANIA PRZESTRZENI TABELI na różnych serwerach. Po prostu zrób mysqldump wszystkiego i zaimportuj mysqldump. Zrzuty logiczne są zawsze najbezpieczniejszym sposobem !!!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. tomcat 6.0.24 Wyjątek:nie można załadować com.mysql.jdbc.SQLError

  2. Wybierać z wielu tabel bez łączenia?

  3. python:jak otrzymywać powiadomienia o zmianach w bazie mysql?

  4. Udane wstrzyknięcie SQL pomimo magicznych cytatów PHP

  5. Aby mieć K w stylu Vima na ekranie dla MySQL