7.10 The mysqlimport Data Import Program
The mysqlimport client provides a command-line interface to the LOAD DATA INFILE SQL statement. Most options to mysqlimport correspond directly to clauses of LOAD DATA INFILE.Invoke mysqlimport like this:
For each text file named on the command line, mysqlimport strips any extension from the filename and uses the result to determine the name of the table into which to import the file's contents. For example, files named patient.txt, patient.text, and patient all would be imported into a table named patient.mysqlimport supports the following options:--help , -?Display a help message and exit.--columns=column_list , -c column_listThis option takes a comma-separated list of column names as its value. The order of the column names indicates how to match up data file columns with table columns.--compress , -CCompress all information sent between the client and the server if both support compression.--debug[=debug_options] , -# [debug_options]Write a debugging log. The debug_options string often is 'd:t:o,file_name'.--delete , -DEmpty the table before importing the text file.
shell> mysqlimport [options] db_name textfile1 [textfile2 ...]
These options have the same meaning as the corresponding clauses for LOAD DATA INFILE.--force , -fIgnore errors. For example, if a table for a text file doesn't exist, continue processing any remaining files. Without --force, mysqlimport exits if a table doesn't exist.--host=host_name , -h host_nameImport data to the MySQL server on the given host. The default host is localhost.--ignore , -iSee the description for the --replace option.--ignore-lines=nIgnore the first n lines of the data file.--local , -LRead input files from the client. By default, text files are assumed to be on the server if you connect to localhost (which is the default host).--lock-tables , -lLock all tables for writing before processing any text files. This ensures that all tables are synchronized on the server.--password[=password] , -p[password]The password to use when connecting to the server. Note that if you use the short option form (-p), you cannot have a space between the option and the password. If no password is given on the command line, you will be prompted for one.--port=port_num , -P port_numThe TCP/IP port number to use for the connection.--protocol={TCP | SOCKET | PIPE | MEMORY}The connection protocol to use. New in MySQL 4.1.--replace , -rThe --replace and --ignore options control handling of input records that duplicate existing records on unique key values. If you specify --replace, new rows replace existing rows that have the same unique key value. If you specify --ignore, input rows that duplicate an existing row on a unique key value are skipped. If you don't specify either option, an error occurs when a duplicate key value is found, and the rest of the text file is ignored.--silent , -sSilent mode. Produce output only when errors occur.--socket=path , -S pathThe socket file to use when connecting to localhost (which is the default host).--user=user_name , -u user_nameThe MySQL username to use when connecting to the server.--verbose , -vVerbose mode. Print out more information what the program does.--version , -VDisplay version information and exit.
--fields-terminated-by=...
--fields-enclosed-by=...
--fields-optionally-enclosed-by=...
--fields-escaped-by=...
--lines-terminated-by=...
Here is a sample session that demonstrates use of mysqlimport:
shell> mysql -e 'CREATE TABLE imptest(id INT, n VARCHAR(30))' test
shell> ed
a
100 Max Sydow
101 Count Dracula
.
w imptest.txt
32
q
shell> 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
shell> mysqlimport --local test imptest.txt
test.imptest: Records: 2 Deleted: 0 Skipped: 0 Warnings: 0
shell> mysql -e 'SELECT * FROM imptest' test
+------+---------------+
| id | n |
+------+---------------+
| 100 | Max Sydow |
| 101 | Count Dracula |
+------+---------------+