该mysqlimport的客户提供了一个命令行界面的 LOAD DATA INFILE
SQL语句。mysqlimport的大多数选项 直接对应于LOAD DATA INFILE
语法的子句 。请参见第13.2.7节“LOAD DATA INFILE语法”。
像这样 调用mysqlimport:
shell> mysqlimport [options] db_name textfile1 [textfile2 ...]
对于在命令行上命名的每个文本文件, mysqlimport将从文件名剥离任何扩展名,并使用结果来确定导入文件内容的表的名称。例如,命名为patient.txt
, patient.text
和patient
全部的文件将被导入到名为的表中patient
。
mysqlimport支持以下选项,它们可以在命令行或 选项文件的组[mysqlimport]
和[client]
组中指定。有关MySQL程序使用的选项文件的信息,请参见第4.2.6节“使用选项文件”。
表4.12 mysqlimport选项
格式 | 描述 | 介绍 | 删除 |
---|---|---|---|
--bind地址 | 使用指定的网络接口连接到MySQL服务器 | ||
- 列 | 该选项以逗号分隔的列名列表作为其值 | ||
- 压缩 | 压缩客户端和服务器之间发送的所有信息 | ||
--debug | 编写调试日志 | ||
--debug检查 | 程序退出时打印调试信息 | ||
- 调试信息 | 打印程序退出时的调试信息,内存和CPU统计信息 | ||
--default-AUTH | 身份验证插件使用 | ||
--default-字符集 | 指定默认字符集 | ||
--defaults-额外文件 | 除了通常的选项文件外,还可以读取已命名的选项 | ||
--defaults文件 | 只读取命名的选项文件 | ||
--defaults基团的后缀 | 选项组后缀值 | ||
- 删除 | 在导入文本文件之前清空表格 | ||
--enable-明文-插件 | 启用明文身份验证插件 | ||
--fields封闭逐 | 该选项与LOAD DATA INFILE的对应子句具有相同的含义 | ||
--fields转义,由 | 该选项与LOAD DATA INFILE的对应子句具有相同的含义 | ||
--fields-任选封闭逐 | 该选项与LOAD DATA INFILE的对应子句具有相同的含义 | ||
--fields封端逐 | 该选项与LOAD DATA INFILE的对应子句具有相同的含义 | ||
- 力 | 即使发生SQL错误也继续 | ||
--get-服务器的公钥 | 从服务器请求RSA公钥 | 8.0.3 | |
- 帮帮我 | 显示帮助信息并退出 | ||
- 主办 | 连接到给定主机上的MySQL服务器 | ||
- 忽视 | 请参阅--replace选项的说明 | ||
- 忽略线 | 忽略数据文件的前N行 | ||
--lines封端逐 | 该选项与LOAD DATA INFILE的对应子句具有相同的含义 | ||
- 本地 | 从客户端主机本地读取输入文件 | ||
--lock桌 | 在处理任何文本文件之前锁定所有表格进行写入 | ||
--login路径 | 阅读.mylogin.cnf中的登录路径选项 | ||
- 低优先级 | 加载表格时使用LOW_PRIORITY。 | ||
--no-默认 | 不读取任何选项文件 | ||
- 密码 | 连接到服务器时使用的密码 | ||
- 管 | 在Windows上,使用命名管道连接到服务器 | ||
--plugin-DIR | 安装插件的目录 | ||
- 港口 | 用于连接的TCP / IP端口号 | ||
--print-默认 | 打印默认选项 | ||
- 协议 | 使用连接协议 | ||
- 更换 | --replace和--ignore选项控制对唯一键值上的现有行进行复制的输入行的处理 | ||
--secure-auth的 | 不要以旧(4.1以前)格式向服务器发送密码 | 8.0.3 | |
--server-公钥路径 | 包含RSA公钥的文件的路径名称 | 8.0.4 | |
--shared存储器碱基名 | 用于共享内存连接的共享内存的名称 | ||
- 无声 | 仅当发生错误时才生成输出 | ||
- 插座 | 用于连接到localhost,要使用的Unix套接字文件 | ||
--ssl-CA | 包含可信SSL证书颁发机构列表的文件 | ||
--ssl-capath | 包含可信SSL证书颁发机构证书文件的目录 | ||
--ssl证书 | 包含X509证书的文件 | ||
--ssl-密码 | 允许连接加密的密码列表 | ||
--ssl-CRL | 包含证书吊销列表的文件 | ||
--ssl-crlpath | 包含证书撤销列表文件的目录 | ||
--ssl键 | 包含X509密钥的文件 | ||
--ssl模式 | 连接到服务器的安全状态 | ||
--tls版本 | 允许加密连接的协议 | ||
--use线程 | 并行文件加载的线程数 | ||
- 用户 | 连接到服务器时使用的MySQL用户名 | ||
--verbose | 详细模式 | ||
- 版 | 显示版本信息并退出 |
--help
,-?
显示帮助信息并退出。
在具有多个网络接口的计算机上,使用此选项选择用于连接到MySQL服务器的接口。
安装字符集的目录。请参见 第10.14节“字符集配置”。
--columns=
,column_list
-c
column_list
该选项以逗号分隔的列名列表作为其值。列名的顺序指示如何将数据文件列与表列匹配。
--compress
,-C
压缩客户端和服务器之间发送的所有信息(如果两者均支持压缩)。
--debug[=
,debug_options
]-# [
debug_options
]编写一个调试日志。一个典型的
debug_options
字符串是 。默认是。d:t:o,
file_name
d:t:o
程序退出时打印一些调试信息。
在程序退出时打印调试信息和内存以及CPU使用情况统计信息。
--default-character-set=
charset_name
使用
charset_name
作为默认字符集。请参见第10.14节“字符集配置”。关于使用客户端身份验证插件的提示。请参见第6.3.10节“可插入认证”。
--defaults-extra-file=
file_name
在全局选项文件之后读取此选项文件,但在用户选项文件之前(在Unix上)。如果文件不存在或无法访问,则会发生错误。
file_name
如果作为相对路径名而非完整路径名给出,则相对于当前目录进行解释。只使用给定的选项文件。如果文件不存在或无法访问,则会发生错误。
file_name
如果作为相对路径名而非完整路径名给出,则相对于当前目录进行解释。例外:即使
--defaults-file
读取客户端程序.mylogin.cnf
。不仅要阅读常用选项组,还要阅读具有常用名称和后缀的组
str
。例如, mysqlimport通常读取[client]
和[mysqlimport]
组。如果--defaults-group-suffix=_other
给出选项,mysqlimport也会读取[client_other]
和[mysqlimport_other]
组。--delete
,-D
在导入文本文件之前清空表格。
启用
mysql_clear_password
明文身份验证插件。(请参见 第6.5.1.4节“客户端明文可插入验证”。)--fields-terminated-by=...
,--fields-enclosed-by=...
,--fields-optionally-enclosed-by=...
,--fields-escaped-by=...
这些选项的含义与相应的条款相同
LOAD DATA INFILE
。请参见第13.2.7节“LOAD DATA INFILE语法”。--force
,-f
忽略错误。例如,如果文本文件的表不存在,请继续处理任何剩余的文件。不 存在时,如果表不存在
--force
,则 退出mysqlimport。从服务器请求基于RSA密钥对的密码交换所需的公钥。此选项适用于使用
caching_sha2_password
身份验证插件进行身份验证的客户端 。对于那个插件,除非请求,服务器不会发送公钥。对于不使用该插件进行身份验证的帐户,此选项将被忽略。如果不使用基于RSA的密码交换,它也会被忽略,例如当客户端使用安全连接连接到服务器时。如果 给出并指定了有效的公钥文件,则优先于 。
--server-public-key-path=
file_name
--get-server-public-key
有关该
caching_sha2_password
插件的信息 ,请参见 第6.5.1.3节“缓存SHA-2可插入验证”。--host=
,host_name
-h
host_name
将数据导入给定主机上的MySQL服务器。默认主机是
localhost
。--ignore
,-i
请参阅该
--replace
选项的说明 。忽略
N
数据文件的第一行。该选项的含义与相应的子句相同
LOAD DATA INFILE
。例如,要导入具有以回车/换行对结尾的行的Windows文件,请使用--lines-terminated-by="\r\n"
。(根据命令解释器的转义约定,您可能必须加倍反斜杠。)请参见 第13.2.7节“LOAD DATA INFILE语法”。--local
,-L
默认情况下,服务器主机上的服务器读取文件。使用此选项,mysqlimport会在客户端主机上本地读取输入文件。启用本地数据加载还需要服务器允许它; 请参见 第6.1.6节“LOAD DATA LOCAL的安全问题”
--lock-tables
,-l
在处理任何文本文件之前 锁定所有表格进行写入。这可确保所有表在服务器上同步。
从
.mylogin.cnf
登录路径文件中的指定登录路径读取选项 。阿 “ 登录路径 ”是含有指定要连接到哪个MySQL服务器和选项哪个帐户作为认证选项组。要创建或修改登录路径文件,请使用 mysql_config_editor实用程序。请参见 第4.6.7节“ mysql_config_editor - MySQL配置实用程序”。LOW_PRIORITY
加载表格时 使用。这会影响只使用表级锁只存储引擎(例如MyISAM
,MEMORY
和MERGE
)。不要阅读任何选项文件。如果由于从选项文件读取未知选项而导致程序启动失败,
--no-defaults
可用于防止读取它们。例外是
.mylogin.cnf
在任何情况下读取文件(如果存在)。这允许以比使用命令行更安全的方式来指定密码,即使在--no-defaults
使用时 也是如此。(.mylogin.cnf
由mysql_config_editor实用程序创建, 请参见 第4.6.7节“ mysql_config_editor - MySQL配置实用程序”。)--password[=
,password
]-p[
password
]连接到服务器时使用的密码。如果使用short option form(
-p
), 则在选项和密码之间不能有空格。如果您省略命令行上password
的--password
or-p
选项后面的 值 ,mysqlimport会提示输入一个值。在命令行中指定密码应被视为不安全。请参见 第6.1.2.1节“密码安全的最终用户指南”。您可以使用选项文件来避免在命令行上输入密码。
--pipe
,-W
在Windows上,使用命名管道连接到服务器。该选项仅适用于服务器支持命名管道连接的情况。
在其中查找插件的目录。如果该
--default-auth
选项用于指定身份验证插件,但 mysqlimport未找到该选项,请指定此选项 。请参见 第6.3.10节“可插入认证”。--port=
,port_num
-P
port_num
用于连接的TCP / IP端口号。
打印程序名称以及从选项文件中获取的所有选项。
--protocol={TCP|SOCKET|PIPE|MEMORY}
用于连接到服务器的连接协议。当其他连接参数通常会导致使用的协议不是您想要的协议时,这很有用。有关允许值的详细信息,请参见 第4.2.2节“连接到MySQL服务器”。
--replace
,-r
在
--replace
和--ignore
选项控制复制唯一键值的现有行输入行处理。如果指定--replace
,则新行将替换具有相同唯一键值的现有行。如果指定--ignore
,则跳过在唯一键值上复制现有行的输入行。如果您未指定任一选项,则在找到重复键值时会发生错误,并忽略文本文件的其余部分。这个选项在MySQL 8.0.3中被删除。
--server-public-key-path=
file_name
包含客户端副本的文件的路径名,该副本是服务器为基于RSA密钥对的密码交换所需的。该文件必须采用PEM格式。该选项适用于使用
sha256_password
或caching_sha2_password
身份验证插件进行身份验证的客户端 。对于未使用其中一个插件进行身份验证的帐户,此选项将被忽略。如果不使用基于RSA的密码交换,它也会被忽略,例如当客户端使用安全连接连接到服务器时。如果 给出并指定了有效的公钥文件,则优先于 。
--server-public-key-path=
file_name
--get-server-public-key
因为
sha256_password
,只有在使用OpenSSL构建MySQL时,此选项才适用。有关这些
sha256_password
和caching_sha2_password
插件的信息,请参见 第6.5.1.2节“SHA-256可插入验证”和 第6.5.1.3节“缓存SHA-2可插入验证”。--shared-memory-base-name=
name
在Windows上,使用共享内存名称,用于使用共享内存连接到本地服务器。默认值是
MYSQL
。共享内存名称区分大小写。必须启动服务器,
--shared-memory
并启用共享内存连接选项。--silent
,-s
静音模式。仅当发生错误时才生成输出。
--socket=
,path
-S
path
连接到
localhost
要使用的Unix套接字文件,或在Windows上使用命名管道的名称。开头的选项
--ssl
指定是否使用SSL连接到服务器,并指出在哪里可以找到SSL密钥和证书。请参见 第6.4.2节“加密连接的命令选项”。客户端允许的加密连接协议。该值是一个包含一个或多个协议名称的逗号分隔列表。可以为这个选项命名的协议取决于用于编译MySQL的SSL库。有关详细信息,请参见 第6.4.6节“加密连接协议和密码”。
--user=
,user_name
-u
user_name
连接到服务器时使用的MySQL用户名。
使用
N
线程并行加载文件。--verbose
,-v
详细模式。打印关于该程序的更多信息。
--version
,-V
显示版本信息并退出。
以下是演示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 |
+------+---------------+