MySql инструмент командной строки для массовой загрузки - PullRequest
7 голосов
/ 26 октября 2009

Есть ли в MySql инструмент командной строки для массовой загрузки, такой как bcp для SQLServer и sqlldr для Oracle? Я знаю, что есть команда SQL LOAD INFILE или аналогичная, но иногда мне нужно выполнить массовую загрузку файла, который находится в другом окне базы данных MySQL.

Ответы [ 4 ]

7 голосов
/ 26 октября 2009

mysqlimport.

принимает те же параметры соединения, что и оболочка командной строки mysql. Обязательно используйте флаг -L для использования файла в локальной файловой системе, иначе он (как ни странно) будет считать, что файл находится на сервере.

Существует также аналогичный вариант команды load data infile, то есть load data local infile, согласно которому файл будет загружаться с клиента, а не с сервера, что может выполнить то, что вы хотите.

6 голосов
/ 26 октября 2009
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);
2 голосов
/ 26 октября 2009
mysql -u root -p
use database;
source /path/yourfile.sql

Может быть, то, что вы ищете, вы можете использовать rsync через ssh для переноса «большого файла» с компьютера на другой.

2 голосов
/ 26 октября 2009

Я думаю, что mysqlimport может помочь?

Загружает таблицы из текстовых файлов в различных форматах. Базовое имя Текстовый файл должен быть именем таблицы, которую следует использовать. Если для подключения к серверу MySQL используются сокеты, сервер откроется и читать текстовый файл напрямую. В остальных случаях клиент откроет текст файл. Команда SQL «LOAD DATA INFILE» используется для импорта строк.

...