MySQL - Import bazy danych - Metody odzyskiwania
W MySQL istnieją dwa proste sposoby ładowania danych do bazy danych MySQL z pliku, którego kopia zapasowa została wcześniej utworzona.
Importowanie danych z LOAD DATA
MySQL udostępnia instrukcję LOAD DATA, która działa jak zbiorczy program ładujący dane. Oto przykładowa instrukcja odczytująca plikdump.txt z bieżącego katalogu i ładuje go do tabeli mytbl w bieżącej bazie danych.
mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl;- Jeśli LOCAL brak słowa kluczowego, MySQL szuka pliku danych na hoście serwera przy użyciu rozszerzenia looking into absolute pathname, który w pełni określa lokalizację pliku, zaczynając od katalogu głównego systemu plików. MySQL odczytuje plik z podanej lokalizacji. 
- Domyślnie, LOAD DATA zakłada, że pliki danych zawierają wiersze zakończone wysunięciem o wiersz (nowe wiersze) i że wartości danych w wierszu są oddzielone tabulatorami. 
- Aby jawnie określić format pliku, użyj rozszerzenia FIELDS klauzula opisująca charakterystykę pól w wierszu, a LINESklauzula, aby określić sekwencję końca wiersza. NastępująceLOAD DATA instrukcja określa, że plik danych zawiera wartości oddzielone dwukropkami i wierszami zakończonymi znakami powrotu karetki i znakiem nowego wiersza. 
mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl
   -> FIELDS TERMINATED BY ':'
   -> LINES TERMINATED BY '\r\n';- Polecenie LOAD DATA zakłada, że kolumny w pliku danych mają tę samą kolejność, co kolumny w tabeli. Jeśli tak nie jest, możesz określić listę wskazującą, do których kolumn tabeli mają zostać załadowane kolumny pliku danych. Załóżmy, że tabela ma kolumny a, b i c, ale kolejne kolumny w pliku danych odpowiadają kolumnom b, c i a. 
Możesz załadować plik, jak pokazano w poniższym bloku kodu.
mysql> LOAD DATA LOCAL INFILE 'dump.txt' 
   -> INTO TABLE mytbl (b, c, a);Importowanie danych za pomocą mysqlimport
MySQL zawiera również program narzędziowy o nazwie mysqlimport który działa jak opakowanie wokół LOAD DATA, dzięki czemu można ładować pliki wejściowe bezpośrednio z wiersza poleceń.
Aby załadować dane z dump.txt w mytblużyj następującego polecenia w wierszu poleceń systemu UNIX.
$ mysqlimport -u root -p --local database_name dump.txt
password *****Jeśli użyjesz mysqlimport, opcje wiersza polecenia zawierają specyfikatory formatu. Plikmysqlimport polecenia odpowiadające dwóm poprzednim LOAD DATA instrukcje wyglądają tak, jak pokazano w poniższym bloku kodu.
$ mysqlimport -u root -p --local --fields-terminated-by = ":" \
   --lines-terminated-by = "\r\n"  database_name dump.txt
password *****Kolejność, w jakiej określasz opcje, nie ma znaczenia dla mysqlimport, poza tym, że wszystkie powinny poprzedzać nazwę bazy danych.
Plik mysqlimport instrukcja używa --columns możliwość określenia kolejności kolumn -
$ mysqlimport -u root -p --local --columns=b,c,a \
   database_name dump.txt
password *****Obsługa cytatów i znaków specjalnych
Klauzula FIELDS może określać inne opcje formatu oprócz TERMINATED BY. Domyślnie LOAD DATA zakłada, że wartości nie są cytowane i interpretuje ukośnik odwrotny (\) jako znak zmiany znaczenia dla znaków specjalnych. Aby jawnie wskazać znak cytowania wartości, użyjENCLOSED BYKomenda. MySQL usunie ten znak z końców wartości danych podczas przetwarzania danych wejściowych. Aby zmienić domyślny znak zmiany znaczenia, użyjESCAPED BY.
Po określeniu ENCLOSED BY w celu wskazania, że znaki cudzysłowu powinny zostać usunięte z wartości danych, można umieścić znak cudzysłowu dosłownie w wartościach danych, podwajając go lub poprzedzając go znakiem zmiany znaczenia.
Na przykład, jeśli cudzysłów i znaki zmiany znaczenia to „i \”, wartość wejściowa "a""b\"c" będą interpretowane jako a"b"c.
Dla mysqlimport, odpowiednie opcje wiersza polecenia do określania cudzysłowu i wartości ucieczki to --fields-enclosed-by i --fields-escaped-by.