Утилита mysqlimport обеспечивает интерфейс командной строки для
SQL-оператора LOAD DATA INFILE. Большинство параметров mysqlimport
полностью соответствует аналогичным параметрам для оператора LOAD DATA INFILE. See Раздел 6.4.9, «Синтаксис оператора LOAD DATA INFILE».
Утилита mysqlimport вызывается следующим образом:
shell> mysqlimport [параметры] database textfile1 [textfile2 ...]
Для каждого текстового файла, указанного в командной строке, mysqlimport
удаляет расширение в каждом имени файла и использует его, чтобы
определить, в какую таблицу занести содержимое. Например, файлы с именами
patient.txt, patient.text и patient должны быть все занесены в таблицу с
именем patient.
Утилита mysqlimport поддерживает следующие опции:
-
-c, --columns=...Эта опция принимает в качестве аргумента список разделенных запятыми имен полей. Данный список полей используется для создания соответствующей команды
LOAD DATA INFILE, которая затем посылается в MySQL. See Раздел 6.4.9, «Синтаксис оператораLOAD DATA INFILE». -
-C, --compressИспользовать компрессию в связи между клиентом и сервером, если они оба поддерживают сжатие.
-
-#, --debug[=option_string]Отслеживать прохождение программы (для отладки).
-
-d, --deleteУдалить данные из таблицы перед импортированием текстового файла.
-
--fields-terminated-by=...,--fields-enclosed-by=...,--fields-optionally-enclosed-by=...,--fields-escaped-by=...,--lines-terminated-by=...Эти опции аналогичны соответствующим операторам для
LOAD DATA INFILE. See Раздел 6.4.9, «Синтаксис оператораLOAD DATA INFILE». -
-f, --forceИгнорировать ошибки. Например, если таблица для текстового файла не существует, продолжать обработку остающихся файлов. Без параметра
--forceутилитаmysqlimportпрекращает работу при отсутствии таблицы. -
--helpВывести справочную информацию и выйти из программы.
-
-h host_name, --host=host_nameИмпортировать данные в MySQL-сервер на указанном хосте. Значение хоста по умолчанию -
localhost. -
-i, --ignoreСм. описание для параметра
--replace. -
-l, --lock-tablesЗаблокировать все таблицы для записи перед обработкой любых текстовых файлов. Это обеспечивает синхронизацию всех таблиц на сервере.
-
-L, --localЧитать входящие файлы из клиента. По умолчанию предполагается, что текстовые файлы расположены на сервере при подсоединении к
localhost(значение хоста по умолчанию). -
-pyour_pass, --password[=your_pass]Используемый пароль при подключении к серверу. Если аргумент
=your_passне введен,mysqlimportпредложит ввести пароль. -
-P port_num, --port=port_numНомер порта TCP/IP, используемого для подсоединения к хосту.
-
--protocol=(TCP | SOCKET | PIPE | MEMORY)Для указания протокола соединения, который надлежит использовать. Новшество в MySQL 4.1.0.
-
-r, --replaceОпции
--replaceи--ignoreуправляют обработкой поступающих на вход записей, которые дублируют имеющиеся записи по значениям уникальных ключей. Если задано значение--replace, новые строки заменяют существующие с тем же самым значением уникального ключа. Если задано значение--ignore, входные строки, которые дублируют существующую строку по значению уникального ключа, пропускаются. Если же ни одна из опций не задана, то при обнаружении ключа-дубликата возникает ошибка и остаток текстового файла игнорируется. -
-s, --silentРежим молчания. Выводить только сообщения об ошибках.
-
-S /path/to/socket, --socket=/path/to/socketФайл сокета для подсоединения к
localhost(значение хоста по умолчанию). -
-u user_name, --user=user_nameИмя пользователя MySQL-сервера, используемое при подсоединении к серверу. Значением по умолчанию является имя для входа в Unix.
-
-v, --verboseРасширенный режим вывода. Вывод более детальной информации о работе программы.
-
-V, --versionВывести информацию о версии и выйти из программы.
Ниже приведен пример листинга программы, использующей утилиту mysqlimport:
$ mysql --version mysql Ver 9.33 Distrib 3.22.25, for pc-linux-gnu (i686) $ uname -a Linux xxx.com 2.2.5-15 #1 Mon Apr 19 22:21:09 EDT 1999 i586 unknown $ mysql -e 'CREATE TABLE imptest(id INT, n VARCHAR(30))' test $ ed a 100 Max Sydow 101 Count Dracula . w imptest.txt 32 q $ od -c imptest.txt 0000000 1 0 0 \t M a x S y d o w \n 1 0 0000020 1 \t C o u n t D r a c u l a \n 0000040 $ mysqlimport --local test imptest.txt test.imptest: Records: 2 Deleted: 0 Skipped: 0 Warnings: 0 $ mysql -e 'SELECT * FROM imptest' test +------+---------------+ | id | n | +------+---------------+ | 100 | Max Sydow | | 101 | Count Dracula | +------+---------------+