6.5.1.1 mysql 客户端选项
mysql 支持以下选项,可以在命令行或 [mysql] 和 [client] 小组中的选项文件中指定。有关 MySQL 程序使用的选项文件信息,请参阅第 6.2.2.2 节,“使用选项文件”。
表格 6.10 mysql 客户端选项
| Option Name | Description |
|---|---|
| --auto-rehash | 启用自动重编译 |
| --auto-vertical-output | 启用自动垂直结果集显示 |
| --batch | 不使用历史文件 |
| --binary-as-hex | 以十六进制表示二进制值 |
| --binary-mode | 禁用 \r\n 到 \n 的转换,并将 \0 当作查询结束符处理 |
| --bind-address | 使用指定的网络接口连接到 MySQL 服务器 |
| --character-sets-dir | 字符集安装目录 |
| --列名 | 在结果集中写入列名 |
| --列类型信息 | 显示结果集元数据 |
| --注释 | 是否保留或去除服务器接收的语句中的注释 |
| --压缩 | 在客户端和服务器之间传输所有信息时启用压缩 |
| --压缩算法 | 用于连接到服务器的允许压缩算法 |
| --连接过期密码 | 指示服务器客户端可以处理过期密码沙箱模式 |
| --连接超时 | 连接超时的秒数 |
| --数据库 | 要使用的数据库 |
| --调试 | 写入调试日志;仅在MySQL被用以支持调试时有效 |
| --调试检查 | 当程序退出时打印调试信息 |
| --调试详细信息 | 在程序退出时打印调试信息、内存和CPU统计信息 |
| --default-auth | 使用的身份验证插件 |
| --default-character-set | 指定默认字符集 |
| --defaults-extra-file | 除了通常的选项文件之外,读取命名的选项文件 |
| --defaults-file | 只读取命名的选项文件 |
| --defaults-group-suffix | 选项组后缀值 |
| --delimiter | 设置语句分隔符 |
| --dns-srv-name | 使用DNS SRV查找主机信息 |
| --enable-cleartext-plugin | 启用清文本身份验证插件 |
| --execute | 执行语句并退出 |
| --force | 即使发生SQL错误也继续 |
| --get-server-public-key | 从服务器请求RSA公钥 |
| --help | 显示帮助信息并退出 |
| --histignore | 用于日志记录的语句模式 |
| --host | MySQL服务器所在主机 |
| --html | 生成HTML输出 |
| --ignore-spaces | 忽略函数名后的空格 |
| --init-command | 连接后执行的SQL语句 |
| --init-command-add | 在重新连接到MySQL服务器时执行额外的SQL语句 |
| --line-numbers | 为错误写行号 |
| --load-data-local-dir | LOAD DATA LOCAL语句中文件名的目录 |
| --local-infile | 启用或禁用LOCAL能力对于LOAD DATA |
| --login-path | 从~/.mylogin.cnf读取登录路径选项 |
| --max_allowed_packet | 向服务器发送或接收的最大数据包长度 |
| --max_join_size | 在使用 --safe_updates 时的自动行数限制,当使用时在join操作中 |
| --named_commands | 启用命名MySQL命令 |
| --net_buffer_length | TCP/IP和套接字通信的缓冲区大小 |
| --network_namespace | 指定网络命名空间 |
| --no-auto-rehash | 禁用自动重新哈希 |
| --no-beep | 当发生错误时不发出蜂鸣 |
| --no-defaults | 不读取任何选项文件 |
| --no-login-paths | 不从登录路径文件中读取登录路径 |
| --one-database | 忽略除了默认数据库(在命令行上指定的)之外的所有语句 |
| --pager | 为分页查询输出使用给定的命令 |
| --password | 连接到服务器时使用的密码 |
| --password1 | 当连接到服务器时使用的第一个多因素认证密码 |
| --password2 | 当连接到服务器时使用的第二个多因素认证密码 |
| --password3 | 当连接到服务器时使用的第三个多因素认证密码 |
| --pipe | 使用命名管道(仅限Windows)连接到服务器 |
| --plugin-authentication-kerberos-client-mode | 在Windows上通过MIT Kerberos库允许GSSAPI插件认证 |
| --plugin-authentication-webauthn-client-preserve-privacy | 允许用户选择用于断言的密钥 |
| --plugin-dir | 插件安装目录 |
| --port | TCP/IP连接端口号码 |
| --print-defaults | 打印默认选项 |
| --prompt | 设置提示符为指定格式 |
| --protocol | 使用的传输协议 |
| --quick | 不缓存每个查询结果 |
| --raw | 以原始格式写出列值,不进行转义 |
| --reconnect | 如果与服务器的连接丢失,自动尝试重新连接 |
| --register-factor | 多因素认证的注册因子 |
| --safe-updates, --i-am-a-dummy | 仅允许指定主键值的UPDATE和DELETE语句 |
| --select-limit | 使用--safe-updates时SELECT语句的自动限制 |
| --server-public-key-path | 包含RSA公钥的文件路径名 |
| --shared-memory-base-name | (仅Windows)共享内存连接的共享内存名称 |
| --显示警告 | 在每个语句后面显示警告信息,如果有的话 |
| --忽略SIGINT信号 | 忽略通常由按下Ctrl+C产生的SIGINT信号 |
| --静默模式 | 静默模式 |
| --跳过自动重哈希 | 禁用自动重哈希功能 |
| --跳过列名 | 在结果集中不写列名 |
| --跳过行号 | 错误信息中不显示行号 |
| --跳过命名命令 | 禁用命名MySQL命令功能 |
| --跳过分页器 | 禁用分页功能 |
| --跳过重新连接 | 禁用自动重新连接功能 |
| --套接字 | 要使用的Unix套接字文件或Windows命名管道 |
| --SSL证书库 | 包含信任的SSL服务器证书的文件 |
| --SSL证书路径 | 包含信任的SSL服务器证书的目录 |
| --ssl-cert | 包含 X.509 证书的文件 |
| --ssl-cipher | 用于连接加密的允许密码 |
| --ssl-crl | 包含证书吊销列表的文件 |
| --ssl-crlpath | 包含证书吊销列表文件的目录 |
| --ssl-fips-mode | 是否启用 FIPS 模式(客户端) |
| --ssl-key | 包含 X.509 密钥的文件 |
| --ssl-mode | 连接到服务器时期望的安全状态 |
| --ssl-session-data | 包含 SSL 会话数据的文件 |
| --ssl-session-data-continue-on-failed-reuse | 如果会话重用失败是否继续建立连接 |
| --syslog | 将交互式语句记录到 syslog 中 |
| --table | 以表格格式显示输出 |
| --tee | 将输出追加到指定的文件中 |
| --telemetry_client | 启用遥测客户端。 |
| --otel_bsp_max_export_batch_size | 查看变量 OTEL_BSP_MAX_EXPORT_BATCH_SIZE。 |
| --otel_bsp_max_queue_size | 查看变量 OTEL_BSP_MAX_QUEUE_SIZE。 |
| --otel_bsp_schedule_delay | 查看变量 OTEL_BSP_SCHEDULE_DELAY。 |
| --otel_exporter_otlp_traces_certificates | 目前尚未使用。保留用于未来开发。 |
| --otel_exporter_otlp_traces_client_certificates | 目前尚未使用。保留用于未来开发。 |
| --otel_exporter_otlp_traces_client_key | 目前尚未使用。保留用于未来开发。 |
| --otel_exporter_otlp_traces_compression | 压缩类型 |
| --otel_exporter_otlp_traces_endpoint | 追踪导出端点 |
| --otel_exporter_otlp_traces_headers | 用于HTTP请求的键值对头部 |
| --otel_exporter_otlp_traces_protocol | OTLP传输协议 |
| --otel_exporter_otlp_traces_timeout | OLTP导出器等待每个批量导出的时间 |
| --otel-help | 当启用时,打印关于telemetry_client选项的帮助信息。 |
| --otel_log_level | 控制哪些OpenTelemetry日志在服务器日志中打印 |
| --otel_resource_attributes | 对应的OpenTelemetry变量为OTEL_RESOURCE_ATTRIBUTES。 |
| --otel-trace | 这个系统变量控制是否收集追踪数据。 |
| --tls-ciphersuites | 允许的TLSv1.3加密套件列表 |
| --tls-sni-servername | 由客户端提供的服务器名称 |
| --tls-version | 用于加密连接的TLS协议列表 |
| --unbuffered | 在每个查询后刷新缓冲区 |
| --user | 用于连接到服务器的MySQL用户名 |
| --verbose | 详细模式 |
| --version | 显示版本信息并退出 |
| --vertical | 以垂直方式打印查询输出行(每个列值占一行) |
| --wait | 如果无法建立连接,等待并重试而不是中断 |
| --xml | 生成XML输出 |
| --zstd-compression-level | 用于支持zstd压缩的服务器连接的压缩级别 |
-
--help,-?Command-Line Format --help显示帮助信息并退出。
-
Command-Line Format --auto-rehashDisabled by skip-auto-rehash启用自动重新哈希。这项选项默认开启,允许数据库、表和列名的自动补全。使用
--disable-auto-rehash禁用重新哈希。那将使 mysql 启动更快,但如果你想要使用名义补全,你必须发出rehash命令或其\#快捷方式。要完成一个名称,输入前缀并按 Tab。如果名称唯一,mysql 完成它。否则,你可以再次按 Tab 查看以你输入的内容开始的所有可能名称。补全不会发生,如果没有默认数据库。
Note此功能需要一个编译有 readline 库的 MySQL 客户端。通常,readline 库在 Windows 上不可用。
-
Command-Line Format --auto-vertical-output如果结果集太宽以适应当前窗口,则将其显示为垂直列表,否则使用正常的表格格式。 (这适用于以
;或\G结束的语句。) -
--batch,-BCommand-Line Format --batch使用制表符作为列分隔符,且每行一个新行打印结果。使用此选项时,mysql 不会使用历史文件。
批量模式导致非表格输出格式,并对特殊字符进行转义。可以通过禁用转义来禁用转义;请参阅
--raw选项的描述。 -
Command-Line Format --binary-as-hexType 布尔值 Default Value 非交互模式下为 FALSE当提供此选项时,mysql 使用十六进制表示法 (
0x<em class="replaceable"value>) 显示二进制数据。这无论输出显示格式是否为表格、垂直列表、HTML 还是 XML,都会发生。--binary-as-hex当启用时,将影响所有二进制字符串的显示,包括由函数如CHAR()和UNHEX()返回的字符串。以下示例使用ASCII码中的'A'(65十进制,41十六进制)来演示这一点:-
--binary-as-hex禁用:mysql> SELECT CHAR(0x41), UNHEX('41'); +------------+-------------+ | CHAR(0x41) | UNHEX('41') | +------------+-------------+ | A | A | +------------+-------------+ -
--binary-as-hex启用:mysql> SELECT CHAR(0x41), UNHEX('41'); +------------------------+--------------------------+ | CHAR(0x41) | UNHEX('41') | +------------------------+--------------------------+ | 0x41 | 0x41 | +------------------------+--------------------------+
要编写一个二进制字符串表达式,使其无论
--binary-as-hex是否启用,都能以字符字符串形式显示,可以使用以下技术:-
函数
CHAR()有一个USING子句:charsetmysql> SELECT CHAR(0x41 USING utf8mb4); +--------------------------+ | CHAR(0x41 USING utf8mb4) | +--------------------------+ | A | +--------------------------+ -
更一般地,使用
CONVERT()将一个表达式转换为给定的字符集:mysql> SELECT CONVERT(UNHEX('41') USING utf8mb4); +------------------------------------+ | CONVERT(UNHEX('41') USING utf8mb4) | +------------------------------------+ | A | +------------------------------------+
当mysql以交互模式运行时,这个选项默认启用。此外,当选项被隐式或显式启用时,
status(或\s)命令的输出包括以下行:Binary data as: Hexadecimal要禁用十六进制表示法,请使用
--skip-binary-as-hex。 -
-
Command-Line Format --binary-mode这个选项在处理mysqlbinlog输出时很有用,这些输出可能包含
BLOB值。默认情况下,mysql将\r\n在语句字符串中翻译为\0作为语句终止符。--binary-mode禁用了这两个功能。此外,在非交互模式下(对于输入被输送到mysql或使用source命令加载),它还禁用了所有mysql命令,除了charset和delimiter。 -
Command-Line Format --bind-地址=ip_地址在具有多个网络接口的计算机上,使用此选项来选择用于连接到MySQL服务器的接口。
-
Command-Line Format --字符集目录=目录名称Type 目录名称 字符集安装的目录。请参阅第12.15节,“字符集配置”。
-
Command-Line Format --列名将结果集的列名写入到输出中。
-
Command-Line Format --列类型信息显示结果集的元数据。这一信息对应于C API中的
MYSQL_FIELD结构。请参阅C API基本数据结构。 -
--注释,-cCommand-Line Format --注释Type 布尔值 Default Value TRUE是否保留或去除服务器发送的语句中的注释。默认是保留它们;要去除它们,请使用 mysql 并指定
--skip-comments参数。NoteMySQL 客户端总是将优化器提示传递给服务器,无论是否提供了这个选项。
注释去除已被弃用。预计未来某个 MySQL 发布版本中会移除此功能及其控制它的选项。
-
--compress,-CCommand-Line Format --compress[={OFF|ON}]Deprecated 是的 Type 布尔值 Default Value OFF如果可能,压缩客户端和服务器之间传输的所有信息。请参阅 第 6.2.8 节,“mysql 连接压缩控制”。
这个选项已被弃用。预计将在 MySQL 的未来版本中移除。请参阅 配置遗留连接压缩。
-
--compression-algorithms=valueCommand-Line Format --compression-algorithms=valueType 设置 Default Value 未压缩Valid Values zlibzstd未压缩服务器连接时允许的压缩算法。可用的算法与
protocol_compression_algorithms系统变量相同。默认值为未压缩。更多信息,请参阅第6.2.8节,“连接压缩控制”。
-
Command-Line Format --connect-expired-password如果用于连接的帐户密码已过期,指示服务器该客户端可以处理沙盒模式。这对于非交互式调用mysql非常有用,因为通常情况下,服务器会断开尝试使用过期密码连接的非交互式客户端。请参阅第8.2.16节,“服务器处理过期密码”。
-
Command-Line Format --connect-timeout=值Type 数字 Default Value 0连接超时的秒数。默认值为
0。 -
--数据库=,db_名称-Ddb_名称Command-Line Format --database=数据库名Type 字符串 要使用的数据库。这主要在选项文件中是有用的。
-
--调试[=,调试选项]-# [调试选项]Command-Line Format --debug[=调试选项]Type 字符串 Default Value d:t:o,/tmp/mysql.trace写入调试日志。一个典型的
调试选项字符串是d:t:o,。默认值为文件名d:t:o,/tmp/mysql.trace。此选项仅在使用
WITH_调试编译MySQL时可用。Oracle提供的MySQL发布版本是不使用此选项构建的。 -
Command-Line Format --debug-检查Type 布尔值 Default Value FALSE在程序退出时打印一些调试信息。
这个选项只有当MySQL使用
WITH_DEBUG进行构建时才可用。Oracle提供的MySQL发布版本是不使用这个选项构建的。 -
--debug-info,-TCommand-Line Format --debug-infoType 布尔值 Default Value FALSE在程序退出时打印调试信息和内存和CPU使用统计。
这个选项只有当MySQL使用
WITH_DEBUG进行构建时才可用。Oracle提供的MySQL发布版本是不使用这个选项构建的。 -
Command-Line Format --default-auth=pluginType 字符串 关于客户端验证插件的提示。请参阅第8.2.17节,“可插拔验证”。
-
Command-Line Format --default-character-set=字符集名称Type 字符串 使用
字符集名称作为客户端和连接的默认字符集。这个选项可以在操作系统使用一种字符集,而 mysql 客户端默认使用另一种时非常有用。在这种情况下,输出可能会格式不正确。您通常可以通过使用这个选项来强制客户端使用系统字符集而解决这些问题。
有关更多信息,请参阅 第 12.4 节,“连接字符集和校对规则”,以及 第 12.15 节,“字符集配置”。
-
Command-Line Format --defaults-extra-file=文件名Type 文件名 在全局选项文件之后读取这个选项文件,但在用户选项文件之前(在 Unix 上)。如果文件不存在或无法访问,会发生错误。如果
文件名不是绝对路径名,它将相对于当前目录解释。有关这个和其他影响选项文件处理的命令行选项的更多信息,请参阅 第 6.2.2.3 节,“影响选项文件处理的命令行选项”。
-
Command-Line Format --defaults-file=file_ nameType 文件名 只使用给定的选项文件。如果文件不存在或无法访问,会发生错误。如果
file_name不是绝对路径名,它将相对于当前目录解释。例外情况:即使有
--defaults-file,客户端程序仍然读取.mylogin.cnf。关于此和其他选项文件选项的更多信息,请参阅第6.2.2.3节,“影响选项文件处理的命令行选项”。
-
Command-Line Format --defaults-group-suffix=strType 字符串 除了常规选项组外,还要阅读那些以常规名称加上
str后缀的组。例如,mysql 通常会读取[client]和[mysql]组。如果提供了这个选项作为--defaults-group-suffix=_other,mysql 也会读取[client_other]和[mysql_other]组。关于这个和其他影响选项文件处理的命令行选项的更多信息,请参阅第 6.2.2.3 节,“影响选项文件处理的命令行选项”。
-
Command-Line Format --delimiter=strType 字符串 Default Value ;设置语句分隔符。默认是分号字符 (
;))。 -
禁用命名命令。只使用形式,或者在行尾以分号(
;)结束时使用命名命令。mysql 默认情况下会以此选项<启用>。然而,即使有这个选项,长格式命令仍然可以从第一行使用。请参阅第 6.5.1.2 节,“mysql 客户端命令”。 -
Command-Line Format --dns-srv-name=nameType 字符串指定用于确定连接到 MySQL 服务器的候选主机的 DNS SRV 记录名称。关于 MySQL 中 DNS SRV 支持的信息,请参阅第 6.2.6 节,“使用 DNS SRV 记录连接到服务器”。假设 DNS 已经配置了对example.com域的以下 SRV 信息:Name TTL Class Priority Weight Port Target _mysql._tcp.example.com. 86400 IN SRV 0 5 3306 host1.example.com _mysql._tcp.example.com. 86400 IN SRV 0 10 3306 host2.example.com _mysql._tcp.example.com. 86400 IN SRV 10 5 3306 host3.example.com _mysql._tcp.example.com. 86400 IN SRV 20 5 3306 host4.example.com要使用该 DNS SRV 记录,调用 mysql 如下:mysql --dns-srv-name=_mysql._tcp.example.commysql 然后尝试连接到组中的每个服务器,直到建立成功的连接。与任何服务器建立连接失败的情况仅在无法与任何服务器建立连接时发生。DNS SRV 记录中 priority 和 weight 值决定了应该如何尝试服务器。
当使用
--dns-srv-name调用时,mysql 只尝试建立 TCP 连接。以下是对MySQL命令行选项的解释:
--dns-srv-name选项优先于--host选项,如果同时给出。使用--dns-srv-name可以让连接建立时调用 C API 函数mysql_real_connect_dns_srv()而不是mysql_real_connect()。然而,如果在运行时使用connect命令并指定主机名参数,那么这个主机名将优先于任何在 MySQL 启动时给出的--dns-srv-name选项,以便指定 DNS SRV 记录。 -
Command-Line Format --enable-cleartext-pluginType 布尔值 Default Value FALSE启用
mysql_clear_password清文本认证插件。请参阅第 8.4.1.4 节,“客户端清文本可插拔认证”。 -
--execute=,statement-estatementCommand-Line Format --execute=statementType 字符串 执行语句并退出。默认的输出格式与使用
--batch时相同。请参阅第6.2.2.1节,“在命令行上使用选项”,了解一些示例。在使用此选项时,mysql 不会使用历史文件。 -
--force,-fCommand-Line Format --force即使发生SQL错误,也继续执行。
-
Command-Line Format --get-server-public-keyType 布尔值 从服务器请求用于RSA密钥对密码交换所需的公钥。这项选项适用于使用
caching_sha2_password身份验证插件进行认证的客户端。对于该插件,服务器不会发送公钥,除非被请求。此选项对不使用该插件进行认证的账户无效,也是当客户端通过安全连接连接到服务器时忽略的,因为在这种情况下不会使用基于RSA的密码交换。如果给定
--server-public-key-path=file_name并指定了一个有效的公钥文件,它将优先于--get-server-public-key。有关
caching_sha2_password插件的信息,请参阅第8.4.1.2节,“Caching SHA-2 Pluggable Authentication”。 -
Command-Line Format --histignore=pattern_listType 字符串 一个或多个以冒号分隔的模式列表,用于指定要忽略的日志记录语句。这些模式会添加到默认模式列表(
"*IDENTIFIED*:*PASSWORD*")中。为这个选项指定的值将影响写入历史文件以及如果给出了--syslog选项时,日志到syslog的语句。有关更多信息,请参阅第 6.5.1.3 节,“mysql 客户端日志记录”。 -
--host=,主机名-h主机名Command-Line Format --host=主机名Type 字符串 Default Value localhost连接到 MySQL 服务器的给定主机上。
使用
--dns-srv-name选项可以覆盖--host选项。如果同时给出这两个选项,--dns-srv-name将导致连接使用mysql_real_connect_dns_srv()C API 函数,而不是mysql_real_connect()。然而,如果在运行时使用 `connect` 命令并指定主机名参数,那么这个主机名将优先于任何启动时给出的--dns-srv-name选项来指定 DNS SRV 记录。 -
--html,-HCommand-Line Format --html生成 HTML 输出。
-
--ignore-spaces,-iCommand-Line Format --ignore-spaces忽略函数名后的空格。该设置的效果在
IGNORE_SPACESQL 模式的讨论中有描述(参见第 7.1.11 节,“服务器 SQL 模式”)。 -
Command-Line Format --init-command=str连接到服务器后执行的单个 SQL 语句。如果启用了自动重连,语句在重连发生时再次执行。定义会覆盖由它或
init-command-add定义的现有语句。 -
Command-Line Format --init-command-add=str连接或重连到 MySQL 服务器后执行的额外 SQL 语句。它可以单独使用,但在没有
--init-command的情况下无效,因为init-command会重置要调用的命令列表。 -
Command-Line Format --line-numbersDisabled by skip-line-numbers错误行号写入,使用
--skip-line-numbers禁用。 -
--load-data-local-dir=dir_nameCommand-Line Format --load-data-local-dir=dir_nameType 目录名称 Default Value 空字符串这个选项影响客户端
LOCAL能力,对于LOAD DATA操作。它指定了文件名在LOAD DATA LOCAL语句中必须位于的目录。如果--load-data-local-dir选项是否生效取决于是否启用或禁用LOCAL数据加载:-
如果启用了
LOCAL数据加载,或者默认情况下在 MySQL 客户端库中启用,或者通过指定--local-infile[=1]指定,则--load-data-local-dir选项被忽略。 -
如果禁用了MySQL客户端库中的本地数据加载,或者通过指定
--local-infile=0来禁用,它们将应用--load-data-local-dir选项。
当
--load-data-local-dir适用时,选项值指定了本地数据文件必须位于的目录。无论底层文件系统是否区分大小写,本地目录路径名与要加载文件的路径名进行比较都是区分大小写。如果选项值为空字符串,则表示没有目录,因此不允许任何本地数据加载。例如,要显式禁用除位于/my/local/data目录中的文件之外的所有本地数据加载,请使用以下命令:
mysql --local-infile=0 --load-data-local-dir=/my/local/data当同时给出
--local-infile和--load-data-local-dir时,给出的顺序不重要。在使用
LOCAL加载操作时,成功地将其集成到 mysql 中,还需要服务器允许本地加载;请参阅第 8.1.6 节,“LOAD DATA LOCAL 的安全考虑” -
-
Command-Line Format --local-infile[={0|1}]Type 布尔值 Default Value FALSE默认情况下,
LOCAL能力对于LOAD DATA由 MySQL 客户端库编译时的默认值决定。要以明确的方式启用或禁用LOCAL数据加载,请使用--local-infile选项。当没有值时,该选项会启用LOCAL数据加载。当以--local-infile=0或--local-infile=1的形式给出时,该选项会禁用或启用LOCAL数据加载。如果
LOCAL功能被禁用,用户可以使用--load-data-local-dir选项来允许受限的本地文件加载,这些文件位于指定目录中。在 mysql 中成功使用
LOCAL加载操作还需要服务器允许本地加载;请参阅 第 8.1.6 节,“LOAD DATA LOCAL 的安全考虑”。 -
Command-Line Format --login-path=nameType 字符串 从名为
.mylogin.cnf的登录路径文件中读取选项。一个 “登录路径” 是包含指定连接到的 MySQL 服务器和用来进行身份验证的帐户选项组。要创建或修改登录路径文件,请使用 mysql_config_editor 工具。请参阅 第 6.6.7 节,“mysql_config_editor — MySQL 配置工具”。对于此选项及其它有关选项文件选项的更多信息,请参阅第6.2.2.3节,“影响选项文件处理的命令行选项”。
-
Command-Line Format --no-login-paths跳过从登录路径文件中读取选项。
有关此选项的相关信息,请参阅
--login-path。对于此和其他选项文件选项的更多信息,请参阅第6.2.2.3节,“影响选项文件处理的命令行选项”。
-
Command-Line Format --max-allowed-packet=值Type 数字 Default Value 16777216客户端/服务器通信的缓冲区最大大小。默认为16MB,最大为1GB。
-
Command-Line Format --max-join-size=值Type 数字 Default Value 1000000自动连接时行数的限制,当使用
--safe-updates选项时。 (默认值为1,000,000。) -
Command-Line Format --named-commandsDisabled by skip-named-commands启用mysql命名命令。允许长格式的命令,而不仅限于短格式的命令。例如,
quit和\q都被识别。使用--skip-named-commands禁用命名命令。请参阅第6.5.1.2节,“mysql 命令行客户端命令”。 -
Command-Line Format --net-buffer-length=valueType 数字 Default Value 16384TCP/IP和套接字通信的缓冲区大小。 (默认值为16KB。)
-
Command-Line Format --network-namespace=nameType 字符串 用于 TCP/IP 连接的网络命名空间。如果省略,连接将使用默认(全局)命名空间。有关网络命名空间的信息,请参阅第 7.1.14 节,“网络命名空间支持”。
此选项仅在实现了网络命名空间支持的平台上可用。
-
--no-auto-rehash,-ACommand-Line Format --no-auto-rehashDeprecated 是的 这与
--skip-auto-rehash效果相同。请参阅--auto-rehash的描述。 -
--no-beep,-bCommand-Line Format --no-beep在发生错误时不发出蜂鸣声。
-
Command-Line Format --no-defaults不读取任何选项文件。如果程序启动时由于从选项文件中读取未知选项而失败,
--no-defaults可以用于防止它们被读取。异常情况是,即使使用了
--no-defaults,也会在所有情况下读取.mylogin.cnf文件,这样可以安全地指定密码,而不需要在命令行上指定。要创建.mylogin.cnf文件,可以使用mysql_config_editor工具。请参阅第6.6.7节,“mysql_config_editor — MySQL 配置工具”。关于此类选项文件选项的更多信息,请参阅第6.2.2.3节,“cmd-行选项影响选项文件处理”。
-
Command-Line Format --oci-config-fileType 字符串 Default Value Oracle Cloud Infrastructure CLI 配置文件的备用路径。指定配置文件的位置。如果您的现有默认配置文件是正确的,那么您不需要指定这个选项。但是,如果您已经存在一个配置文件,包含多个配置文件或与要连接的用户tenancy不同的默认配置,请指定这个选项。
-
--one-database,-oCommand-Line Format --one-database忽略所有语句,只执行命令行指定的数据库名称对应的语句。这一选项非常基础,使用时请谨慎。语句过滤仅基于
USE语句。最初,mysql 会在输入中执行所有语句,因为在命令行指定数据库名称相当于在输入的开始插入
USE <db_name>。然后,对于每个遇到的USE语句,mysql 根据是否是命令行指定的数据库名称来接受或拒绝接下来的语句,语句内容不重要。假设mysql 被调用来处理这个语句集:
DELETE FROM db2.t2; USE db2; DROP TABLE db1.t1; CREATE TABLE db1.t1 (i INT); USE db1; INSERT INTO t1 (i) VALUES(1); CREATE TABLE db2.t1 (j INT);如果命令行是 mysql --force --one-database db1, mysql 将输入处理如下:
-
由于默认数据库是
db1,因此即使语句命名了不同数据库的表格,DELETE语句仍然被执行。 -
由于默认数据库不是
db1,因此即使语句命名了db1数据库的表格,DROP TABLE和CREATE TABLE语句不会被执行。 -
由于默认数据库是
db1,因此即使CREATE TABLE语句命名了不同数据库的表格,INSERT和CREATE TABLE语句仍然被执行。
-
-
Command-Line Format --pager[=command]Disabled by skip-pagerType 字符串 使用给定的命令来分页查询输出。如果没有提供命令,系统将使用你的
PAGER环境变量指定的默认分页器。有效的分页器包括 less、more、cat [> filename] 等。此选项仅在 Unix 系统上可用,并且只能在交互模式下使用。要禁用分页,请使用--skip-pager。关于输出分页的更多信息,请参阅第 6.5.1.2 节,“mysql 客户端命令”。 -
--password[=password],-p[=password]Command-Line Format --password[=password]Type 字符串 MySQL 用于连接到服务器的帐户密码。密码值是可选的。如果不提供,mysql 将提示输入一个。如果给定,必须在
--password=或-p后面没有空格。若未指定密码选项,默认情况下不发送密码。在命令行中指定密码应该被认为是不安全的。为了避免在命令行中提供密码,请使用选项文件。请参阅《8.1.2.1 用户密码安全指南》。
要明确指定没有密码,并且mysql 不会提示输入密码,请使用
--skip-password选项。 -
MySQL 账户用于连接到服务器的多因素认证第一个因素的密码。密码值是可选的。如果不给出,mysql 会提示输入一个。如果提供了密码,那么在
--password1=和后面的密码之间不能有空格。如果没有指定密码选项,默认情况下不会发送密码。在命令行中指定密码应该被认为是不安全的。为了避免在命令行中提供密码,请使用选项文件。请参阅《8.1.2.1 用户密码安全指南》。
要明确指出没有密码,并且要求mysql 不要提示输入密码,请使用
--skip-password1选项。--password1和--password是同义词,--skip-password1和--skip-password也是一对同义词。 -
用于连接到服务器的 MySQL 账户的第二因素认证密码。该选项的语义与
--password1的语义相似;请参阅该选项的描述以获取详细信息。 -
MySQL账户用于连接服务器的多因素认证第三个因素的密码。该选项的语义与
--password1的语义相似;请参阅该选项的描述以获取详细信息。 -
--pipe,-WCommand-Line Format --pipeType 字符串 在Windows上,使用命名管道连接到服务器。这一选项仅适用于服务器以支持命名管道连接的方式启动,并且执行连接的用户必须是由
named_pipe系统变量指定的Windows组成员。另外,连接的用户还必须是由named_pipe_full_access_group系统变量指定的Windows组成员。 -
--plugin-authentication-kerberos-client-mode=valueCommand-Line Format --plugin-authentication-kerberos-client-modeType 字符串 Default Value SSPIValid Values GSSAPISSPI在Windows上,
authentication_kerberos_client认证插件支持此插件选项。它提供了两个可能的值供客户端用户在运行时设置:SSPI和GSSAPI。插件选项的默认值使用安全支持提供程序接口(SSPI),它能够从Windows内存缓存中获取凭据。客户端用户也可以选择一种模式,该模式通过MIT Kerberos库在Windows上支持通用安全服务应用程序程序接口(GSSAPI)。GSSAPI能够获取之前由使用
kinit命令生成的缓存凭据。要了解更多信息,请参阅Windows客户端在GSSAPI模式下的命令。
-
--plugin-authentication-webauthn-client-preserve-privacy={OFF|ON}Command-Line Format --plugin-authentication-webauthn-client-preserve-privacyType 布尔值 Default Value OFF确定在有多个可发现凭据存储于给定RP ID(一个用于信任方服务器的唯一名称,通常是MySQL服务器)时,如何将断言发送到服务器。如果FIDO2设备包含对应RP ID的多个居民密钥,这个选项允许用户选择用于断言的密钥。它提供了两个可能的值供客户端用户设置。默认值为
OFF。如果设置为OFF,挑战将由给定RP ID可用的所有凭据签名,并且所有签名都将发送到服务器。如果设置为ON,用户将被提示选择用于签名的凭据。Note这个选项在设备不支持居民密钥特性的情况下无效。
有关更多信息,请参阅第8.4.1.11节,“WebAuthn可插拔认证”。
-
Command-Line Format --plugin-dir=dir_nameType 目录名称 指定插件所在的目录。如果使用
--default-auth选项指定了认证插件,但mysql无法找到它,请使用这个选项。请参阅第8.2.17节,“可插拔认证”。 -
--port=,端口号-P端口号Command-Line Format --port=端口号Type 数字 Default Value 3306用于TCP/IP连接的端口号。
-
Command-Line Format --print-defaults打印程序名称及其来自选项文件的所有选项。
关于此和其他影响选项文件处理的命令行选项的更多信息,请参阅第6.2.2.3节,“影响选项文件处理的命令行选项”。
-
Command-Line Format --prompt=格式字符串Type 字符串 Default Value mysql>设置提示符为指定的格式。默认值为
mysql>。提示符可以包含的特殊序列描述在第6.5.1.2节,“mysql 客户端命令”中进行了说明。 -
--protocol={TCP|SOCKET|PIPE|MEMORY}Command-Line Format --protocol=typeType 字符串 Default Value [查看文本]Valid Values TCPSOCKETPIPEMEMORY用于连接到服务器的传输协议。它在其他连接参数通常导致使用与您想要的不同协议时非常有用。在可接受值的详细信息上,请参阅第6.2.7节,“连接传输协议”。
-
--quick,-qCommand-Line Format --quick不缓存每个查询结果,打印每一行随即接收到。这可能会在输出被挂起时减慢服务器。使用此选项,mysql 不使用历史文件。
默认情况下,mysql 在产生任何输出之前会 fetch 所有结果行;在存储这些值的过程中,它会逐个计算每一列的实际值的最大长度。当打印输出时,它会使用这个最大长度来格式化。若指定了
--quick,mysql 不会在开始之前计算要用于长度的行,因此它会使用最大长度。在以下示例中,表t1有一个类型为BIGINT的单列,包含 4 行。默认输出宽度为 9 个字符;这个宽度等于返回的行中任何一列值的最大字符数(5),加上用于填充的两个空格和用作列分隔符的|字符。使用--quick选项时,输出宽度为 25 个字符;这个宽度等于表示-9223372036854775808这个最长可能的值所需的字符数(19),加上用于填充和列分隔符的四个字符。差异可以在这里看到:$> mysql -t test -e "SELECT * FROM t1" +-------+ | c1 | +-------+ | 100 | | 1000 | | 10000 | | 10 | +-------+ $> mysql --quick -t test -e "SELECT * FROM t1" +----------------------+ | c1 | +----------------------+ | 100 | | 1000 | | 10000 | | 10 | +----------------------+ -
--raw,-rCommand-Line Format --raw对于表格输出,“ boxing ” 在列中使用使得一个列值能够区分于另一个。对于非表格输出(例如在批处理模式下或当提供了
--batch或--silent选项时),特殊字符在输出中被转义,以便容易识别。换行符、制表符、NUL和反斜杠分别写为\n、\t、\0和\\。--raw选项可以禁用这些字符的转义。以下示例演示了表格输出与非表格输出以及使用原始模式来禁用转义:
% mysql mysql> SELECT CHAR(92); +----------+ | CHAR(92) | +----------+ | \ | +----------+ % mysql -s mysql> SELECT CHAR(92); CHAR(92) \\ % mysql -s -r mysql> SELECT CHAR(92); CHAR(92) \ -
Command-Line Format --reconnectDisabled by skip- reconnect如果与服务器的连接丢失,自动尝试重新连接。每次连接丢失时都会进行一次重连尝试。要抑制重连行为,请使用
--skip-reconnect。 -
Command-Line Format --register-factor=valueType 字符串 在使用WebAuthn设备认证之前,必须对FIDO/FIDO2设备进行注册。该选项值必须是一个单独的值或两个值,用逗号分隔。每个值都必须是2或3,因此允许的选项值为
'2'、'3'、'2,3'和'3,2'。例如,需要对第三个认证因素进行注册的账户,将使用mysql客户端如下方式操作:
mysql --user=user_name --register-factor=3需要对第二个和第三个认证因素进行注册的账户,将使用mysql客户端如下方式操作:
mysql --user=user_name --register-factor=2,3如果注册成功,会建立连接。如果有一个认证因素的注册状态为待定,当尝试连接到服务器时,会将连接置于待定注册模式。在这种情况下,断开并重新连接使用正确的
--register-factor值来完成注册。注册是一个两步过程,包括启动注册和完成注册两个步骤。启动注册步骤执行以下语句:
ALTER USER user factor INITIATE REGISTRATION该语句返回一个结果集,其中包含32字的挑战、用户名称以及依赖方ID(参见
authentication_webauthn_rp_id)。完成注册步骤执行此语句:
ALTER USER user factor FINISH REGISTRATION SET CHALLENGE_RESPONSE AS 'auth_string'该语句完成了注册并将以下信息发送到服务器作为
auth_字符串的一部分:认证数据、可选的X.509格式的证明书和签名。初始化和注册步骤必须在单个连接中执行,因为客户端在初始化步骤期间接收到的挑战被保存在客户端连接处理器中。若要进行注册,必须使用不同的连接,这将导致注册失败。
--register-factor选项执行初始化和注册步骤,这避免了上述描述的失败情况,并防止手动执行ALTER USER初始化和注册语句。--register-factor选项仅适用于mysql和MySQL Shell客户端。其他MySQL客户端程序不支持它。有关相关信息,请参阅使用WebAuthn身份验证。
-
--safe-updates、--i-am-a-dummy和-UCommand-Line Format --安全更新--我是一个虚拟用户Type 布尔值 Default Value 假如果启用了这个选项,
UPDATE和DELETE语句如果没有在WHERE子句或LIMIT子句中使用主键,将产生错误。此外,对SELECT语句的限制,特别是那些可能生成(或估计将生成)非常大结果集的语句。如果您在选项文件中设置了这个选项,您可以使用--跳过安全更新在命令行中覆盖它。有关此选项的更多信息,请参阅使用安全更新模式(--safe_updates)。 -
Command-Line Format --select_limit=值Type 数字 Default Value 1000当使用
--safe_updates时,自动的SELECT语句限制。默认值为1,000。 -
--server-public-key-path=file_nameCommand-Line Format --server-public-key-path=file_nameType 文件名 指定一个包含服务器端公钥的PEM格式文件的路径名。这项选项适用于使用
sha256_password或caching_sha2_password认证插件进行身份验证的客户端。对于不使用这些插件的账户或者不使用基于RSA密钥对的密码交换的连接,这项选项将被忽略。--server-public-key-path=如果指定了有效的公钥文件,将会优先于file_name--get-server-public-key。对于
sha256_password,这项选项仅在MySQL使用OpenSSL进行编译时有效。关于
sha256_password和caching_sha2_password插件的信息,请参阅第8.4.1.3节,“SHA-256可插拔认证”和第8.4.1.2节,“Caching SHA-2可插拔认证”。 -
--shared-memory-base-name=nameCommand-Line Format --shared-memory-base-name=namePlatform Specific Windows 在 Windows 上,用于通过共享内存连接到本地服务器的共享内存名称。默认值为
MYSQL。共享内存名称不区分大小写。这个选项只适用于服务器以支持共享内存连接而启动时启用了
shared_ memory系统变量。 -
Command-Line Format --show-warnings在每个语句后显示警告信息,如果有的话。这项选项适用于交互式和批处理模式。
-
Command-Line Format --sigint-ignore忽略
SIGINT信号(通常是通过按下 Control+C 来产生的)。没有这项选项,按下 Control+C 可以中断当前语句,如果有的话,或者取消任何部分输入行。
-
--silent,-sCommand-Line Format --silent静默模式。产生较少输出。这项选项可以重复使用以产生更少和更少的输出。
这项选项导致非表格化的输出格式,并对特殊字符进行转义。转义可能会被禁用通过使用原始模式;参见
--raw的描述。 -
Command-Line Format --skip-column-names不在结果中写入列名。使用此选项会导致输出右对齐,如下所示:
$> echo "SELECT * FROM t1" | mysql -t test +-------+ | c1 | +-------+ | a,c,d | | c | +-------+ $> echo "SELECT * FROM t1" | ./mysql -uroot -Nt test +-------+ | a,c,d | | c | +-------+ -
Command-Line Format --skip-line-numbers不在错误消息中写入行号。有助于当您想要比较包含错误消息的结果文件时。
-
--socket=,路径-S路径Command-Line Format --socket={文件名|管道名}Type 字符串 对于连接到
localhost的连接,Unix套接字文件路径,或在Windows上,命名管道的名称。在 Windows 上,这个选项仅适用于服务器以支持命名管道连接而启动时,
named_pipe系统变量被启用。在此情况下,尝试建立连接的用户必须是由named_pipe_full_access_group系统变量指定的 Windows 组成员。 -
以
--ssl开头的选项指定是否使用加密连接,并指示 SSL 密钥和证书的位置。请参阅命令选项:加密连接。 -
--ssl-fips-mode={OFF|ON|STRICT}Command-Line Format --ssl-fips-mode={OFF|ON|STRICT}Deprecated 是 Type 枚举 Default Value OFFValid Values OFFONSTRICT控制是否在客户端启用FIPS模式。与其他
--ssl-<xxx>选项不同,--ssl-fips-mode选项不是用来建立加密连接的,而是用来影响哪些加密操作被允许。请参阅第8.8节,“FIPS支持”。这些
--ssl-fips-mode值是允许的:-
OFF:禁用FIPS模式。 -
ON:启用FIPS模式。 -
STRICT:启用“严格”FIPS模式。
Note如果没有可用的OpenSSL FIPS对象模块,
--ssl-fips-mode的唯一允许值是OFF。在这种情况下,将--ssl-fips-mode设置为ON或STRICT会在启动时导致客户端产生一个警告,并以非FIPS模式运行。此选项已被弃用。预计将在MySQL的未来版本中移除。
-
-
--syslog,-jCommand-Line Format --syslog这项选项会导致 mysql 将交互式语句发送到系统日志记录设施。对于 Unix 系统,这是
syslog;对于 Windows 系统,它是 Windows 事件日志。日志消息的目的地取决于系统。在 Linux 系统上,日志通常出现在/var/log/messages文件中。以下是在使用
--syslog选项时在 Linux 上生成的输出示例。这段输出格式化以便阅读;每条日志消息实际上占用一行。Mar 7 12:39:25 myhost MysqlClient[20824]: SYSTEM_USER:'oscar', MYSQL_USER:'my_oscar', CONNECTION_ID:23, DB_SERVER:'127.0.0.1', DB:'--', QUERY:'USE test;' Mar 7 12:39:28 myhost MysqlClient[20824]: SYSTEM_USER:'oscar', MYSQL_USER:'my_oscar', CONNECTION_ID:23, DB_SERVER:'127.0.0.1', DB:'test', QUERY:'SHOW TABLES;'要了解更多信息,请参阅第 6.5.1.3 节,“mysql 客户端日志记录”。
-
Command-Line Format --table以表格格式显示输出。这是交互式使用的默认设置,但也可以用于生成批处理模式下的表格输出。
-
Command-Line Format --tee=文件名Type 文件名 将输出的副本附加到给定的文件中。这项选项仅在交互式模式下有效。有关 tee 文件的进一步讨论,请参阅第 6.5.1.2 节,“mysql 客户端命令”。
-
--tls-ciphersuites=ciphersuite_listCommand-Line Format --tls-ciphersuites=ciphersuite_listType 字符串 用于TLSv1.3加密连接的允许密码套件列表。值是一个由一个或多个冒号分隔的密码套件名称列表。可以为此选项命名的密码套件取决于用来编译MySQL的SSL库。有关详细信息,请参阅第8.3.2节,“加密连接TLS协议和密码”。
-
--tls-sni-servername=server_nameCommand-Line Format --tls-sni-servername=server_nameType 字符串 当指定时,名称将被传递给libmysqlclient C API库,使用
mysql_options()的MYSQL_OPT_TLS_SNI_SERVERNAME选项。服务器名称不区分大小写。要查看客户端为当前会话指定的服务器名称(如果有),请检查Tls_sni_server_name状态变量。Server Name Indication (SNI) 是TLS协议的一个扩展(OpenSSL必须使用TLS扩展编译此选项才能工作)。MySQL SNI实现仅代表客户端侧。
-
Command-Line Format --tls-version=协议列表Type 字符串 Default Value TLSv1,TLSv1.1,TLSv1.2,TLSv1.3(OpenSSL 1.1.1 或更高版本)TLSv1,TLSv1.1,TLSv1.2(否则)用于加密连接的允许TLS协议。值是一个由一个或多个逗号分隔的协议名称列表。可以为此选项命名的协议取决于用来编译MySQL的SSL库。详细信息,请参阅第8.3.2节,“加密连接TLS协议和密码”。
-
--unbuffered,-nCommand-Line Format --unbuffered每个查询后都刷新缓冲区。
-
--user=,用户名-u用户名Command-Line Format --user=用户名Type 字符串 用于连接到服务器的MySQL账户的用户名称。
-
--verbose,-vCommand-Line Format --verbose详细模式。程序执行时产生更多输出。这项选项可以重复使用以产生更多和更多的输出。(例如,
-v -v -v在批处理模式下也会产生表格输出格式。) -
--version,-VCommand-Line Format --version显示版本信息并退出。
-
--vertical,-ECommand-Line Format --vertical以垂直方式打印查询输出行(每一列值占一行)。没有这项选项,您可以通过在语句后面添加
\G来为单个语句指定垂直输出。 -
--wait,-wCommand-Line Format --wait如果无法建立连接,等待并重试,而不是中止。
-
--xml,-XCommand-Line Format --xml产生XML输出。
<field name="column_name">NULL</field>当使用
--xml选项与mysql一起使用时,输出将与mysqldump的--xml选项匹配。有关详细信息,请参阅第6.5.4节,“mysqldump — 数据库备份程序”。XML 输出还使用了XML命名空间,如下所示:
$> mysql --xml -uroot -e "SHOW VARIABLES LIKE 'version%'" <?xml version="1.0"?> <resultset statement="SHOW VARIABLES LIKE 'version%'" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <row> <field name="Variable_name">version</field> <field name="Value">5.0.40-debug</field> </row> <row> <field name="Variable_name">version_comment</field> <field name="Value">Source distribution</field> </row> <row> <field name="Variable_name">version_compile_machine</field> <field name="Value">i686</field> </row> <row> <field name="Variable_name">version_compile_os</field> <field name="Value">suse-linux-gnu</field> </row> </resultset> -
--zstd-compression-level=levelCommand-Line Format --zstd-compression-level=#Type 整数 用于连接到服务器的压缩级别,该服务器使用
zstd压缩算法。允许的级别从1到22,较大的值表示更高的压缩级别。默认的zstd压缩级别为3。压缩级别设置对不使用zstd压缩的连接无效。有关更多信息,请参阅第6.2.8节,“连接压缩控制”。
-
Command-Line Format --telemetry_clientType 布尔值 Default Value OFF启用遥测客户端插件(仅限Linux)。
为了获取更多信息,请参阅第35章,遥测。