mysqlimportLOAD
DATA客户端为SQL 语句
提供命令行界面。mysqlimport的大多数选项
直接对应于
LOAD DATA语法子句。请参阅
第 13.2.6 节,“加载数据语句”。
像这样调用mysqlimport:
mysqlimport [options] db_name textfile1 [textfile2 ...]
对于在命令行上命名的每个文本文件,
mysqlimport从文件名中去除任何扩展名,并使用结果来确定要将文件内容导入到其中的表的名称。例如,名为patient.txt、
patient.text和
patientall 的文件将导入到名为 的表中patient。
mysqlimport支持以下选项,可以在命令行或
选项文件的组中指定[mysqlimport]。[client]有关 MySQL 程序使用的选项文件的信息,请参阅第 4.2.2.2 节,“使用选项文件”。
表 4.16 mysqlimport 选项
| 选项名称 | 描述 | 介绍 | 弃用 |
|---|---|---|---|
| --绑定地址 | 使用指定的网络接口连接到 MySQL 服务器 | ||
| - 列 | 此选项将以逗号分隔的列名列表作为其值 | ||
| - 压缩 | 压缩客户端和服务器之间发送的所有信息 | ||
| --调试 | 写调试日志 | ||
| --调试检查 | 程序退出时打印调试信息 | ||
| - 调试信息 | 程序退出时打印调试信息、内存和 CPU 统计信息 | ||
| --default-auth | 要使用的身份验证插件 | ||
| --默认字符集 | 指定默认字符集 | ||
| --defaults-extra-file | 除了通常的选项文件外,还读取命名的选项文件 | ||
| --defaults-文件 | 只读命名选项文件 | ||
| --defaults-group-suffix | 选项组后缀值 | ||
| - 删除 | 在导入文本文件之前清空表格 | ||
| --启用明文插件 | 启用明文身份验证插件 | 5.7.10 | |
| --fields-enclosed-by | 此选项与 LOAD DATA 的相应子句含义相同 | ||
| --fields-escaped-by | 此选项与 LOAD DATA 的相应子句含义相同 | ||
| --fields-optionally-enclosed-by | 此选项与 LOAD DATA 的相应子句含义相同 | ||
| --fields-terminated-by | 此选项与 LOAD DATA 的相应子句含义相同 | ||
| - 力量 | 即使出现 SQL 错误也继续 | ||
| --get-server-public-key | 从服务器请求 RSA 公钥 | 5.7.23 | |
| - 帮助 | 显示帮助信息并退出 | ||
| - 主持人 | MySQL 服务器所在的主机 | ||
| - 忽视 | 请参阅 --replace 选项的说明 | ||
| --忽略行 | 忽略数据文件的前 N 行 | ||
| --lines-terminated-by | 此选项与 LOAD DATA 的相应子句含义相同 | ||
| - 当地的 | 从客户端主机本地读取输入文件 | ||
| --锁表 | 在处理任何文本文件之前锁定所有表以进行写入 | ||
| --登录路径 | 从 .mylogin.cnf 读取登录路径选项 | ||
| - 低优先级 | 加载表时使用 LOW_PRIORITY | ||
| --no-defaults | 不读取选项文件 | ||
| - 密码 | 连接到服务器时使用的密码 | ||
| - 管道 | 使用命名管道连接到服务器(仅限 Windows) | ||
| --插件目录 | 安装插件的目录 | ||
| - 港口 | 用于连接的 TCP/IP 端口号 | ||
| --print-defaults | 打印默认选项 | ||
| - 协议 | 使用的传输协议 | ||
| - 代替 | --replace 和 --ignore 选项控制在唯一键值上复制现有行的输入行的处理 | ||
| --secure-auth | 不要以旧的(pre-4.1)格式向服务器发送密码 | 是的 | |
| --server-public-key-path | 包含 RSA 公钥的文件的路径名 | 5.7.23 | |
| --shared-memory-base-name | 共享内存连接的共享内存名称(仅限 Windows) | ||
| - 沉默的 | 仅在发生错误时产生输出 | ||
| - 插座 | 要使用的 Unix 套接字文件或 Windows 命名管道 | ||
| --ssl | 启用连接加密 | ||
| --ssl-ca | 包含可信 SSL 证书颁发机构列表的文件 | ||
| --ssl-capath | 包含受信任的 SSL 证书颁发机构证书文件的目录 | ||
| --ssl证书 | 包含 X.509 证书的文件 | ||
| --ssl密码 | 连接加密的允许密码 | ||
| --ssl-crl | 包含证书吊销列表的文件 | ||
| --ssl-crlpath | 包含证书吊销列表文件的目录 | ||
| --ssl-密钥 | 包含 X.509 密钥的文件 | ||
| --ssl模式 | 连接到服务器的所需安全状态 | 5.7.11 | |
| --ssl-verify-server-cert | 根据服务器证书公用名身份验证主机名 | ||
| --tls-版本 | 加密连接允许的 TLS 协议 | 5.7.10 | |
| --使用线程 | 并行文件加载的线程数 | ||
| - 用户 | 连接到服务器时使用的 MySQL 用户名 | ||
| --冗长 | 详细模式 | ||
| - 版本 | 显示版本信息并退出 |
--help,-?显示帮助信息并退出。
在具有多个网络接口的计算机上,使用此选项来选择用于连接到 MySQL 服务器的接口。
安装字符集的目录。请参阅 第 10.15 节,“字符集配置”。
--columns=,column_list-ccolumn_list此选项将逗号分隔的列名列表作为其值。列名的顺序指示如何将数据文件列与表列匹配。
--compress,-C如果可能,压缩客户端和服务器之间发送的所有信息。请参阅 第 4.2.6 节,“连接压缩控制”。
--debug[=,debug_options]-# [debug_options]写调试日志。典型的
debug_options字符串是 . 默认值为。d:t:o,file_named:t:o仅当 MySQL 是使用
WITH_DEBUG. Oracle 提供的 MySQL 发布二进制文件不是 使用此选项构建的。程序退出时打印一些调试信息。
仅当 MySQL 是使用
WITH_DEBUG. Oracle 提供的 MySQL 发布二进制文件不是 使用此选项构建的。程序退出时打印调试信息以及内存和 CPU 使用统计信息。
仅当 MySQL 是使用
WITH_DEBUG. Oracle 提供的 MySQL 发布二进制文件不是 使用此选项构建的。--default-character-set=charset_name用作
charset_name默认字符集。请参阅第 10.15 节,“字符集配置”。关于使用哪个客户端身份验证插件的提示。请参阅第 6.2.13 节,“可插入身份验证”。
--defaults-extra-file=file_name在全局选项文件之后但(在 Unix 上)在用户选项文件之前读取此选项文件。如果该文件不存在或无法访问,则会发生错误。如果
file_name不是绝对路径名,则将其解释为相对于当前目录。有关此选项和其他选项文件选项的其他信息,请参阅第 4.2.2.3 节,“影响选项文件处理的命令行选项”。
仅使用给定的选项文件。如果该文件不存在或无法访问,则会发生错误。如果
file_name不是绝对路径名,则将其解释为相对于当前目录。例外:即使有
--defaults-file,客户端程序也会读取.mylogin.cnf.有关此选项和其他选项文件选项的其他信息,请参阅第 4.2.2.3 节,“影响选项文件处理的命令行选项”。
不仅要阅读通常的选项组,还要阅读具有通常名称和后缀
str. 例如, mysqlimport通常读取[client]和[mysqlimport]组。如果此选项作为 给出--defaults-group-suffix=_other, 则mysqlimport还会读取[client_other]和[mysqlimport_other]组。有关此选项和其他选项文件选项的其他信息,请参阅第 4.2.2.3 节,“影响选项文件处理的命令行选项”。
--delete,-D在导入文本文件之前清空表格。
启用
mysql_clear_password明文身份验证插件。(请参阅 第 6.4.1.6 节,“客户端明文可插入身份验证”。)这个选项是在 MySQL 5.7.10 中添加的。
--fields-terminated-by=...,--fields-enclosed-by=...,--fields-optionally-enclosed-by=...,--fields-escaped-by=...这些选项与 的相应子句具有相同的含义
LOAD DATA。请参阅 第 13.2.6 节,“加载数据语句”。--force,-f忽略错误。例如,如果文本文件的表不存在,则继续处理任何剩余的文件。没有 ,如果表不存在
--force, mysqlimport将退出。从服务器请求基于 RSA 密钥对的密码交换所需的公钥。此选项适用于使用
caching_sha2_password身份验证插件进行身份验证的客户端。对于该插件,除非请求,否则服务器不会发送公钥。对于未使用该插件进行身份验证的帐户,将忽略此选项。如果不使用基于 RSA 的密码交换,它也会被忽略,就像客户端使用安全连接连接到服务器时的情况一样。如果 给出并指定一个有效的公钥文件,它优先于 .
--server-public-key-path=file_name--get-server-public-key有关
caching_sha2_password插件的信息,请参阅 第 6.4.1.4 节,“缓存 SHA-2 可插入身份验证”。该
--get-server-public-key选项是在 MySQL 5.7.23 中添加的。--host=,host_name-hhost_name将数据导入给定主机上的 MySQL 服务器。默认主机是
localhost.--ignore,-i请参阅
--replace选项的说明。忽略数据文件的第一
N行。此选项与 的相应子句具有相同的含义
LOAD DATA。例如,要导入行以回车符/换行符对结尾的 Windows 文件,请使用--lines-terminated-by="\r\n". (您可能必须将反斜杠加倍,这取决于您的命令解释器的转义约定。)请参阅 第 13.2.6 节,“加载数据语句”。--local,-L默认情况下,文件由服务器主机上的服务器读取。使用此选项,mysqlimport在客户端主机上本地读取输入文件。
在mysqlimport 中成功使用
LOCAL加载操作还需要服务器允许本地加载;参见 第 6.1.6 节,“LOAD DATA LOCAL 的安全注意事项”--lock-tables,-l在处理任何文本文件之前锁定所有用于写入的表。这确保所有表在服务器上同步。
从登录路径文件中指定的登录路径读取选项
.mylogin.cnf。“ 登录路径”是一个选项组,其中包含指定要连接到哪个 MySQL 服务器以及要以哪个帐户进行身份验证的选项。要创建或修改登录路径文件,请使用 mysql_config_editor实用程序。请参阅 第 4.6.6 节,“mysql_config_editor — MySQL 配置实用程序”。有关此选项和其他选项文件选项的其他信息,请参阅第 4.2.2.3 节,“影响选项文件处理的命令行选项”。
LOW_PRIORITY加载表格时 使用。这只会影响仅使用表级锁定的存储引擎(例如MyISAM、MEMORY和MERGE)。不要读取任何选项文件。如果程序启动因从选项文件中读取未知选项而失败,
--no-defaults可用于防止它们被读取。例外情况是
.mylogin.cnf文件在所有情况下都会被读取(如果存在)。这允许以比在命令行上更安全的方式指定密码,即使在--no-defaults使用 时也是如此。要创建.mylogin.cnf,请使用 mysql_config_editor实用程序。请参阅 第 4.6.6 节,“mysql_config_editor — MySQL 配置实用程序”。有关此选项和其他选项文件选项的其他信息,请参阅第 4.2.2.3 节,“影响选项文件处理的命令行选项”。
--password[=,password]-p[password]用于连接到服务器的 MySQL 帐户的密码。密码值是可选的。如果没有给出, mysqlimport会提示输入一个。如果给定,则后面 的密码之间 不能有空格。如果未指定密码选项,则默认为不发送密码。
--password=-p在命令行上指定密码应该被认为是不安全的。为避免在命令行中提供密码,请使用选项文件。请参阅 第 6.1.2.1 节,“密码安全的最终用户指南”。
要明确指定没有密码并且 mysqlimport不应提示输入密码,请使用该
--skip-password选项。--pipe,-W在 Windows 上,使用命名管道连接到服务器。仅当服务器启动时
named_pipe启用了支持命名管道连接的系统变量时,此选项才适用。此外,进行连接的用户必须是named_pipe_full_access_group系统变量指定的 Windows 组的成员。在其中查找插件的目录。如果
--default-auth选项用于指定身份验证插件但 mysqlimport找不到它,请指定此选项。请参阅 第 6.2.13 节,“可插入身份验证”。--port=,port_num-Pport_num对于 TCP/IP 连接,要使用的端口号。
打印程序名称和它从选项文件中获取的所有选项。
有关此选项和其他选项文件选项的其他信息,请参阅第 4.2.2.3 节,“影响选项文件处理的命令行选项”。
--protocol={TCP|SOCKET|PIPE|MEMORY}用于连接到服务器的传输协议。当其他连接参数通常导致使用您想要的协议以外的协议时,它很有用。有关允许值的详细信息,请参阅 第 4.2.5 节“连接传输协议”。
--replace,-r--replace和--ignore选项控制对在唯一键值上复制现有行的输入行的处理 。如果您指定--replace,新行将替换具有相同唯一键值的现有行。如果您指定--ignore,将跳过在唯一键值上复制现有行的输入行。如果您未指定任何一个选项,则在找到重复的键值时会发生错误,并且文本文件的其余部分将被忽略。不要以旧的(pre-4.1)格式向服务器发送密码。这会阻止除使用较新密码格式的服务器之外的连接。
从 MySQL 5.7.5 开始,此选项已弃用;预计在未来的 MySQL 版本中将其删除。它始终处于启用状态,尝试禁用它 (
--skip-secure-auth,--secure-auth=0) 会产生错误。在 MySQL 5.7.5 之前,此选项默认启用,但可以禁用。笔记使用 pre-4.1 哈希方法的密码不如使用本机密码哈希方法的密码安全,应避免使用。4.1 之前的密码已弃用,MySQL 5.7.5 中删除了对它们的支持。有关帐户升级说明,请参阅 第 6.4.1.3 节,“从 4.1 版之前的密码哈希和 mysql_old_password 插件迁移”。
--server-public-key-path=file_namePEM 格式文件的路径名,其中包含服务器所需的公钥客户端副本,用于基于 RSA 密钥对的密码交换。此选项适用于使用
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.4.1.5 节,“SHA-256 可插入身份验证”和 第 6.4.1.4 节,“缓存 SHA-2 可插入身份验证”。该
--server-public-key-path选项是在 MySQL 5.7.23 中添加的。--shared-memory-base-name=name在 Windows 上,用于使用共享内存与本地服务器建立连接的共享内存名称。默认值为
MYSQL。共享内存名称区分大小写。仅当服务器启动时
shared_memory启用了支持共享内存连接的系统变量时,此选项才适用。--silent,-s静音模式。仅在发生错误时才产生输出。
--socket=,path-Spath对于与 的连接
localhost,要使用的 Unix 套接字文件,或者在 Windows 上,要使用的命名管道的名称。在 Windows 上,仅当服务器启动时
named_pipe启用了支持命名管道连接的系统变量时,此选项才适用。此外,进行连接的用户必须是named_pipe_full_access_group系统变量指定的 Windows 组的成员。以 开头的选项
--ssl指定是否使用加密连接到服务器并指示在哪里可以找到 SSL 密钥和证书。请参阅 加密连接的命令选项。加密连接允许的 TLS 协议。该值是一个或多个以逗号分隔的协议名称的列表。可以为此选项命名的协议取决于用于编译 MySQL 的 SSL 库。有关详细信息,请参阅 第 6.3.2 节,“加密连接 TLS 协议和密码”。
这个选项是在 MySQL 5.7.10 中添加的。
--user=,user_name-uuser_name用于连接到服务器的 MySQL 帐户的用户名。
N使用线程 并行加载文件。--verbose,-v详细模式。打印有关程序功能的更多信息。
--version,-V显示版本信息并退出。
这是一个示例会话,演示了 mysqlimport的使用:
$> 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 |
+------+---------------+