2009-10-26 19 views
7

Czy narzędzie MySql ma narzędzie wiersza polecenia ładowania zbiorczego, takie jak bcp dla SQLServer i sqlldr dla Oracle? Wiem, że istnieje polecenie SQL LOAD INFILE lub podobne, ale czasami potrzebuję masowo załadować plik, który znajduje się w innym polu do bazy danych MySQL.Narzędzie wiersza polecenia obciążenia zbiorczego MySql

Odpowiedz

7

mysqlimport.

ma takie same parametry połączenia jak powłoka linii poleceń mysql. Upewnij się, że używasz flagi -L, aby użyć pliku w lokalnym systemie plików, w przeciwnym razie (dziwnie) założysz, że plik znajduje się na serwerze.

Istnieje również analogiczny wariant do polecenia load data infile, tj. load data local infile, zgodnie z którym plik zostanie załadowany z klienta, a nie z serwera, który może wykonać to, co chcesz zrobić.

+0

mysqlimport wygląda jak to, czego szukam, dzięki. Tylko dziwactwo Zauważyłem, że wygląda na to, że nazwa pliku musi pasować do nazwy tabeli, więc może "ładowanie danych lokalnych infeli" będzie bardziej elastyczne. –

+1

tak, więc możesz dodać dowiązanie symboliczne do pliku przed jego zaimportowaniem. – Don

2

Myślę, że mysqlimport może pomóc?

Ładuje tabele z plików tekstowych w różnych formatach. Nazwa podstawowa pliku tekstowego musi być nazwą tabeli, która powinna zostać użyta. Jeśli używasz gniazd do połączenia z serwerem MySQL, serwer otworzy się i odczyta plik tekstowy bezpośrednio. W innych przypadkach klient otworzy plik tekstowy . Polecenie SQL "LOAD DATA INFILE" służy do importowania wierszy.

2
mysql -u root -p 
use database; 
source /path/yourfile.sql 

Może być to, czego szukasz, możesz użyć rsync przez SSH do TRANSFERT „Plik luzem” z maszyny na inną.

5
LOAD DATA LOCAL INFILE 'C:\\path\\to\\windows\\file.CSV' 
INTO TABLE table_name 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
(field1, field2, field3, fieldx); 
+0

niesamowicie super szybko! –

Powiązane problemy