Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


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

    显示帮助信息并退出。

  • --auto-rehash

    Command-Line Format --auto-rehash
    Disabled by skip-auto-rehash

    启用自动重新哈希。这项选项默认开启,允许数据库、表和列名的自动补全。使用 --disable-auto-rehash 禁用重新哈希。那将使 mysql 启动更快,但如果你想要使用名义补全,你必须发出 rehash 命令或其 \# 快捷方式。

    要完成一个名称,输入前缀并按 Tab。如果名称唯一,mysql 完成它。否则,你可以再次按 Tab 查看以你输入的内容开始的所有可能名称。补全不会发生,如果没有默认数据库。

    Note

    此功能需要一个编译有 readline 库的 MySQL 客户端。通常,readline 库在 Windows 上不可用。

  • --auto-vertical-output

    Command-Line Format --auto-vertical-output

    如果结果集太宽以适应当前窗口,则将其显示为垂直列表,否则使用正常的表格格式。 (这适用于以 ;\G 结束的语句。)

  • --batch, -B

    Command-Line Format --batch

    使用制表符作为列分隔符,且每行一个新行打印结果。使用此选项时,mysql 不会使用历史文件。

    批量模式导致非表格输出格式,并对特殊字符进行转义。可以通过禁用转义来禁用转义;请参阅 --raw 选项的描述。

  • --binary-as-hex

    Command-Line Format --binary-as-hex
    Type 布尔值
    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 charset子句:

      mysql> 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

  • --binary-mode

    Command-Line Format --binary-mode

    这个选项在处理mysqlbinlog输出时很有用,这些输出可能包含BLOB值。默认情况下,mysql\r\n在语句字符串中翻译为\0作为语句终止符。--binary-mode禁用了这两个功能。此外,在非交互模式下(对于输入被输送到mysql或使用source命令加载),它还禁用了所有mysql命令,除了charsetdelimiter

  • --bind-address=ip_address

    Command-Line Format --bind-地址=ip_地址

    在具有多个网络接口的计算机上,使用此选项来选择用于连接到MySQL服务器的接口。

  • --字符集目录=目录名称

    Command-Line Format --字符集目录=目录名称
    Type 目录名称

    字符集安装的目录。请参阅第12.15节,“字符集配置”

  • --列名

    Command-Line Format --列名

    将结果集的列名写入到输出中。

  • --列类型信息

    Command-Line Format --列类型信息

    显示结果集的元数据。这一信息对应于C API中的MYSQL_FIELD结构。请参阅C API基本数据结构

  • --注释, -c

    Command-Line Format --注释
    Type 布尔值
    Default Value TRUE

    是否保留或去除服务器发送的语句中的注释。默认是保留它们;要去除它们,请使用 mysql 并指定 --skip-comments 参数。

    Note

    MySQL 客户端总是将优化器提示传递给服务器,无论是否提供了这个选项。

    注释去除已被弃用。预计未来某个 MySQL 发布版本中会移除此功能及其控制它的选项。

  • --compress, -C

    Command-Line Format --compress[={OFF|ON}]
    Deprecated 是的
    Type 布尔值
    Default Value OFF

    如果可能,压缩客户端和服务器之间传输的所有信息。请参阅 第 6.2.8 节,“mysql 连接压缩控制”

    这个选项已被弃用。预计将在 MySQL 的未来版本中移除。请参阅 配置遗留连接压缩

  • --compression-algorithms=value

    Command-Line Format --compression-algorithms=value
    Type 设置
    Default Value 未压缩
    Valid Values

    zlib

    zstd

    未压缩

    服务器连接时允许的压缩算法。可用的算法与protocol_compression_algorithms系统变量相同。默认值为未压缩

    更多信息,请参阅第6.2.8节,“连接压缩控制”

  • --connect-expired-password

    Command-Line Format --connect-expired-password

    如果用于连接的帐户密码已过期,指示服务器该客户端可以处理沙盒模式。这对于非交互式调用mysql非常有用,因为通常情况下,服务器会断开尝试使用过期密码连接的非交互式客户端。请参阅第8.2.16节,“服务器处理过期密码”

  • --connect-timeout=

    Command-Line Format --connect-timeout=值
    Type 数字
    Default Value 0

    连接超时的秒数。默认值为0

  • --数据库=db_名称, -D db_名称

    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, -T

    Command-Line Format --debug-info
    Type 布尔值
    Default Value FALSE

    在程序退出时打印调试信息和内存和CPU使用统计。

    这个选项只有当MySQL使用WITH_DEBUG进行构建时才可用。Oracle提供的MySQL发布版本是使用这个选项构建的。

  • --default-auth=插件

    Command-Line Format --default-auth=plugin
    Type 字符串

    关于客户端验证插件的提示。请参阅第8.2.17节,“可插拔验证”

  • --default-character-set=字符集名称

    Command-Line Format --default-character-set=字符集名称
    Type 字符串

    使用 字符集名称 作为客户端和连接的默认字符集。

    这个选项可以在操作系统使用一种字符集,而 mysql 客户端默认使用另一种时非常有用。在这种情况下,输出可能会格式不正确。您通常可以通过使用这个选项来强制客户端使用系统字符集而解决这些问题。

    有关更多信息,请参阅 第 12.4 节,“连接字符集和校对规则”,以及 第 12.15 节,“字符集配置”

  • --defaults-extra-file=文件名

    Command-Line Format --defaults-extra-file=文件名
    Type 文件名

    在全局选项文件之后读取这个选项文件,但在用户选项文件之前(在 Unix 上)。如果文件不存在或无法访问,会发生错误。如果 文件名 不是绝对路径名,它将相对于当前目录解释。

    有关这个和其他影响选项文件处理的命令行选项的更多信息,请参阅 第 6.2.2.3 节,“影响选项文件处理的命令行选项”

  • --defaults-file=file_name

    Command-Line Format --defaults-file=file_ name
    Type 文件名

    只使用给定的选项文件。如果文件不存在或无法访问,会发生错误。如果file_name不是绝对路径名,它将相对于当前目录解释。

    例外情况:即使有--defaults-file,客户端程序仍然读取.mylogin.cnf

    关于此和其他选项文件选项的更多信息,请参阅第6.2.2.3节,“影响选项文件处理的命令行选项”

  • --defaults-group-suffix=str

    Command-Line Format --defaults-group-suffix=str
    Type 字符串

    除了常规选项组外,还要阅读那些以常规名称加上 str 后缀的组。例如,mysql 通常会读取 [client][mysql] 组。如果提供了这个选项作为 --defaults-group-suffix=_othermysql 也会读取 [client_other][mysql_other] 组。

    关于这个和其他影响选项文件处理的命令行选项的更多信息,请参阅第 6.2.2.3 节,“影响选项文件处理的命令行选项”

  • --delimiter=str

    Command-Line Format --delimiter=str
    Type 字符串
    Default Value ;

    设置语句分隔符。默认是分号字符 (;))。

  • --disable-named-commands

    禁用命名命令。只使用形式,或者在行尾以分号(;)结束时使用命名命令。mysql 默认情况下会以此选项<启用>。然而,即使有这个选项,长格式命令仍然可以从第一行使用。请参阅第 6.5.1.2 节,“mysql 客户端命令”

  • --dns-srv-name<name

    Command-Line Format --dns-srv-name=name
    Type 字符串

    指定用于确定连接到 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.com

    mysql 然后尝试连接到组中的每个服务器,直到建立成功的连接。与任何服务器建立连接失败的情况仅在无法与任何服务器建立连接时发生。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 记录。

  • --enable-cleartext-plugin

    Command-Line Format --enable-cleartext-plugin
    Type 布尔值
    Default Value FALSE

    启用 mysql_clear_password 清文本认证插件。请参阅第 8.4.1.4 节,“客户端清文本可插拔认证”。

  • --execute=statement, -e statement

    Command-Line Format --execute=statement
    Type 字符串

    执行语句并退出。默认的输出格式与使用 --batch 时相同。请参阅第6.2.2.1节,“在命令行上使用选项”,了解一些示例。在使用此选项时,mysql 不会使用历史文件。

  • --force, -f

    Command-Line Format --force

    即使发生SQL错误,也继续执行。

  • --get-server-public-key

    Command-Line Format --get-server-public-key
    Type 布尔值

    从服务器请求用于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”

  • --histignore

    Command-Line Format --histignore=pattern_list
    Type 字符串

    一个或多个以冒号分隔的模式列表,用于指定要忽略的日志记录语句。这些模式会添加到默认模式列表("*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, -H

    Command-Line Format --html

    生成 HTML 输出。

  • --ignore-spaces, -i

    Command-Line Format --ignore-spaces

    忽略函数名后的空格。该设置的效果在IGNORE_SPACE SQL 模式的讨论中有描述(参见第 7.1.11 节,“服务器 SQL 模式”)。

  • --init-command=str

    Command-Line Format --init-command=str

    连接到服务器后执行的单个 SQL 语句。如果启用了自动重连,语句在重连发生时再次执行。定义会覆盖由它或init-command-add 定义的现有语句。

  • --init-command-add=str

    Command-Line Format --init-command-add=str

    连接或重连到 MySQL 服务器后执行的额外 SQL 语句。它可以单独使用,但在没有--init-command的情况下无效,因为init-command会重置要调用的命令列表。

  • --line-numbers

    Command-Line Format --line-numbers
    Disabled by skip-line-numbers

    错误行号写入,使用 --skip-line-numbers 禁用。

  • --load-data-local-dir=dir_name

    Command-Line Format --load-data-local-dir=dir_name
    Type 目录名称
    Default Value 空字符串

    这个选项影响客户端 LOCAL 能力,对于LOAD DATA 操作。它指定了文件名在 LOAD DATA LOCAL 语句中必须位于的目录。如果 --load-data-local-dir 选项是否生效取决于是否启用或禁用 LOCAL 数据加载:

    --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 的安全考虑”

  • --local-infile[={0|1}]

    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 的安全考虑”

  • --login-path=name

    Command-Line Format --login-path=name
    Type 字符串

    从名为 .mylogin.cnf 的登录路径文件中读取选项。一个 登录路径” 是包含指定连接到的 MySQL 服务器和用来进行身份验证的帐户选项组。要创建或修改登录路径文件,请使用 mysql_config_editor 工具。请参阅 第 6.6.7 节,“mysql_config_editor — MySQL 配置工具”

    对于此选项及其它有关选项文件选项的更多信息,请参阅第6.2.2.3节,“影响选项文件处理的命令行选项”

  • --no-login-paths

    Command-Line Format --no-login-paths

    跳过从登录路径文件中读取选项。

    有关此选项的相关信息,请参阅--login-path

    对于此和其他选项文件选项的更多信息,请参阅第6.2.2.3节,“影响选项文件处理的命令行选项”

  • --max-allowed-packet=

    Command-Line Format --max-allowed-packet=值
    Type 数字
    Default Value 16777216

    客户端/服务器通信的缓冲区最大大小。默认为16MB,最大为1GB。

  • --max-join-size=

    Command-Line Format --max-join-size=值
    Type 数字
    Default Value 1000000

    自动连接时行数的限制,当使用--safe-updates选项时。 (默认值为1,000,000。)

  • --named-commands-G

    Command-Line Format --named-commands
    Disabled by skip-named-commands

    启用mysql命名命令。允许长格式的命令,而不仅限于短格式的命令。例如,quit\q都被识别。使用--skip-named-commands禁用命名命令。请参阅第6.5.1.2节,“mysql 命令行客户端命令”

  • --net-buffer-length=value

    Command-Line Format --net-buffer-length=value
    Type 数字
    Default Value 16384

    TCP/IP和套接字通信的缓冲区大小。 (默认值为16KB。)

  • --network-namespace=name

    Command-Line Format --network-namespace=name
    Type 字符串

    用于 TCP/IP 连接的网络命名空间。如果省略,连接将使用默认(全局)命名空间。有关网络命名空间的信息,请参阅第 7.1.14 节,“网络命名空间支持”

    此选项仅在实现了网络命名空间支持的平台上可用。

  • --no-auto-rehash, -A

    Command-Line Format --no-auto-rehash
    Deprecated 是的

    这与 --skip-auto-rehash 效果相同。请参阅--auto-rehash 的描述。

  • --no-beep, -b

    Command-Line Format --no-beep

    在发生错误时不发出蜂鸣声。

  • --no-defaults

    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-行选项影响选项文件处理”

  • --oci-config-file=路径

    Command-Line Format --oci-config-file
    Type 字符串
    Default Value

    Oracle Cloud Infrastructure CLI 配置文件的备用路径。指定配置文件的位置。如果您的现有默认配置文件是正确的,那么您不需要指定这个选项。但是,如果您已经存在一个配置文件,包含多个配置文件或与要连接的用户tenancy不同的默认配置,请指定这个选项。

  • --one-database, -o

    Command-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 db1mysql 将输入处理如下:

    • 由于默认数据库是 db1,因此即使语句命名了不同数据库的表格,DELETE 语句仍然被执行。

    • 由于默认数据库不是 db1,因此即使语句命名了 db1 数据库的表格,DROP TABLECREATE TABLE 语句不会被执行。

    • 由于默认数据库是 db1,因此即使 CREATE TABLE 语句命名了不同数据库的表格,INSERTCREATE TABLE 语句仍然被执行。

  • --pager[=command]

    Command-Line Format --pager[=command]
    Disabled by skip-pager
    Type 字符串

    使用给定的命令来分页查询输出。如果没有提供命令,系统将使用你的 PAGER 环境变量指定的默认分页器。有效的分页器包括 lessmorecat [> 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 选项。

  • --password1[=pass_val]

    MySQL 账户用于连接到服务器的多因素认证第一个因素的密码。密码值是可选的。如果不给出,mysql 会提示输入一个。如果提供了密码,那么在--password1= 和后面的密码之间不能有空格。如果没有指定密码选项,默认情况下不会发送密码。

    在命令行中指定密码应该被认为是不安全的。为了避免在命令行中提供密码,请使用选项文件。请参阅《8.1.2.1 用户密码安全指南》

    要明确指出没有密码,并且要求mysql 不要提示输入密码,请使用--skip-password1选项。

    --password1--password 是同义词,--skip-password1--skip-password 也是一对同义词。

  • --password2[=pass_val]

    用于连接到服务器的 MySQL 账户的第二因素认证密码。该选项的语义与--password1 的语义相似;请参阅该选项的描述以获取详细信息。

  • --password3[=pass_val]

    MySQL账户用于连接服务器的多因素认证第三个因素的密码。该选项的语义与--password1的语义相似;请参阅该选项的描述以获取详细信息。

  • --pipe, -W

    Command-Line Format --pipe
    Type 字符串

    在Windows上,使用命名管道连接到服务器。这一选项仅适用于服务器以支持命名管道连接的方式启动,并且执行连接的用户必须是由named_pipe系统变量指定的Windows组成员。另外,连接的用户还必须是由named_pipe_full_access_group系统变量指定的Windows组成员。

  • --plugin-authentication-kerberos-client-mode=value

    Command-Line Format --plugin-authentication-kerberos-client-mode
    Type 字符串
    Default Value SSPI
    Valid Values

    GSSAPI

    SSPI

    在Windows上,authentication_kerberos_client认证插件支持此插件选项。它提供了两个可能的值供客户端用户在运行时设置:SSPIGSSAPI

    插件选项的默认值使用安全支持提供程序接口(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-privacy
    Type 布尔值
    Default Value OFF

    确定在有多个可发现凭据存储于给定RP ID(一个用于信任方服务器的唯一名称,通常是MySQL服务器)时,如何将断言发送到服务器。如果FIDO2设备包含对应RP ID的多个居民密钥,这个选项允许用户选择用于断言的密钥。它提供了两个可能的值供客户端用户设置。默认值为OFF。如果设置为OFF,挑战将由给定RP ID可用的所有凭据签名,并且所有签名都将发送到服务器。如果设置为ON,用户将被提示选择用于签名的凭据。

    Note

    这个选项在设备不支持居民密钥特性的情况下无效。

    有关更多信息,请参阅第8.4.1.11节,“WebAuthn可插拔认证”

  • --plugin-dir=dir_name

    Command-Line Format --plugin-dir=dir_name
    Type 目录名称

    指定插件所在的目录。如果使用--default-auth选项指定了认证插件,但mysql无法找到它,请使用这个选项。请参阅第8.2.17节,“可插拔认证”

  • --port=端口号, -P 端口号

    Command-Line Format --port=端口号
    Type 数字
    Default Value 3306

    用于TCP/IP连接的端口号。

  • --print-defaults

    Command-Line Format --print-defaults

    打印程序名称及其来自选项文件的所有选项。

    关于此和其他影响选项文件处理的命令行选项的更多信息,请参阅第6.2.2.3节,“影响选项文件处理的命令行选项”

  • --prompt=格式字符串

    Command-Line Format --prompt=格式字符串
    Type 字符串
    Default Value mysql>

    设置提示符为指定的格式。默认值为 mysql>。提示符可以包含的特殊序列描述在第6.5.1.2节,“mysql 客户端命令”中进行了说明。

  • --protocol={TCP|SOCKET|PIPE|MEMORY}

    Command-Line Format --protocol=type
    Type 字符串
    Default Value [查看文本]
    Valid Values

    TCP

    SOCKET

    PIPE

    MEMORY

    用于连接到服务器的传输协议。它在其他连接参数通常导致使用与您想要的不同协议时非常有用。在可接受值的详细信息上,请参阅第6.2.7节,“连接传输协议”

  • --quick, -q

    Command-Line Format --quick

    不缓存每个查询结果,打印每一行随即接收到。这可能会在输出被挂起时减慢服务器。使用此选项,mysql 不使用历史文件。

    默认情况下,mysql 在产生任何输出之前会 fetch 所有结果行;在存储这些值的过程中,它会逐个计算每一列的实际值的最大长度。当打印输出时,它会使用这个最大长度来格式化。若指定了 --quickmysql 不会在开始之前计算要用于长度的行,因此它会使用最大长度。在以下示例中,表 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, -r

    Command-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)
    \
  • --reconnect

    Command-Line Format --reconnect
    Disabled by skip- reconnect

    如果与服务器的连接丢失,自动尝试重新连接。每次连接丢失时都会进行一次重连尝试。要抑制重连行为,请使用 --skip-reconnect

  • --register-factor=value

    Command-Line Format --register-factor=value
    Type 字符串

    在使用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-U

    Command-Line Format

    --安全更新

    --我是一个虚拟用户

    Type 布尔值
    Default Value

    如果启用了这个选项,UPDATEDELETE语句如果没有在 WHERE 子句或 LIMIT 子句中使用主键,将产生错误。此外,对SELECT语句的限制,特别是那些可能生成(或估计将生成)非常大结果集的语句。如果您在选项文件中设置了这个选项,您可以使用--跳过安全更新在命令行中覆盖它。有关此选项的更多信息,请参阅使用安全更新模式(--safe_updates)

  • --select_limit=

    Command-Line Format --select_limit=值
    Type 数字
    Default Value 1000

    当使用--safe_updates时,自动的 SELECT 语句限制。默认值为1,000。

  • --server-public-key-path=file_name

    Command-Line Format --server-public-key-path=file_name
    Type 文件名

    指定一个包含服务器端公钥的PEM格式文件的路径名。这项选项适用于使用sha256_passwordcaching_sha2_password认证插件进行身份验证的客户端。对于不使用这些插件的账户或者不使用基于RSA密钥对的密码交换的连接,这项选项将被忽略。

    --server-public-key-path=file_name如果指定了有效的公钥文件,将会优先于--get-server-public-key

    对于sha256_password,这项选项仅在MySQL使用OpenSSL进行编译时有效。

    关于sha256_passwordcaching_sha2_password插件的信息,请参阅第8.4.1.3节,“SHA-256可插拔认证”第8.4.1.2节,“Caching SHA-2可插拔认证”

  • --shared-memory-base-name=name

    Command-Line Format --shared-memory-base-name=name
    Platform Specific Windows

    在 Windows 上,用于通过共享内存连接到本地服务器的共享内存名称。默认值为 MYSQL。共享内存名称不区分大小写。

    这个选项只适用于服务器以支持共享内存连接而启动时启用了shared_ memory系统变量。

  • --show-warnings

    Command-Line Format --show-warnings

    在每个语句后显示警告信息,如果有的话。这项选项适用于交互式和批处理模式。

  • --sigint-ignore

    Command-Line Format --sigint-ignore

    忽略 SIGINT 信号(通常是通过按下 Control+C 来产生的)。

    没有这项选项,按下 Control+C 可以中断当前语句,如果有的话,或者取消任何部分输入行。

  • --silent, -s

    Command-Line Format --silent

    静默模式。产生较少输出。这项选项可以重复使用以产生更少和更少的输出。

    这项选项导致非表格化的输出格式,并对特殊字符进行转义。转义可能会被禁用通过使用原始模式;参见--raw的描述。

  • --skip-column-names, -N

    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 |
    +-------+
  • --skip-line-numbers, -L

    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 密钥和证书的位置。请参阅命令选项:加密连接

  • --ssl-fips-mode={OFF|ON|STRICT}

    Command-Line Format --ssl-fips-mode={OFF|ON|STRICT}
    Deprecated
    Type 枚举
    Default Value OFF
    Valid Values

    OFF

    ON

    STRICT

    控制是否在客户端启用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设置为ONSTRICT会在启动时导致客户端产生一个警告,并以非FIPS模式运行。

    此选项已被弃用。预计将在MySQL的未来版本中移除。

  • --syslog-j

    Command-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 客户端日志记录”

  • --table, -t

    Command-Line Format --table

    以表格格式显示输出。这是交互式使用的默认设置,但也可以用于生成批处理模式下的表格输出。

  • --tee=文件名

    Command-Line Format --tee=文件名
    Type 文件名

    将输出的副本附加到给定的文件中。这项选项仅在交互式模式下有效。有关 tee 文件的进一步讨论,请参阅第 6.5.1.2 节,“mysql 客户端命令”

  • --tls-ciphersuites=ciphersuite_list

    Command-Line Format --tls-ciphersuites=ciphersuite_list
    Type 字符串

    用于TLSv1.3加密连接的允许密码套件列表。值是一个由一个或多个冒号分隔的密码套件名称列表。可以为此选项命名的密码套件取决于用来编译MySQL的SSL库。有关详细信息,请参阅第8.3.2节,“加密连接TLS协议和密码”

  • --tls-sni-servername=server_name

    Command-Line Format --tls-sni-servername=server_name
    Type 字符串

    当指定时,名称将被传递给libmysqlclient C API库,使用mysql_options()MYSQL_OPT_TLS_SNI_SERVERNAME选项。服务器名称不区分大小写。要查看客户端为当前会话指定的服务器名称(如果有),请检查Tls_sni_server_name状态变量。

    Server Name Indication (SNI) 是TLS协议的一个扩展(OpenSSL必须使用TLS扩展编译此选项才能工作)。MySQL SNI实现仅代表客户端侧。

  • --tls-version=协议列表

    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, -n

    Command-Line Format --unbuffered

    每个查询后都刷新缓冲区。

  • --user=用户名, -u 用户名

    Command-Line Format --user=用户名
    Type 字符串

    用于连接到服务器的MySQL账户的用户名称。

  • --verbose, -v

    Command-Line Format --verbose

    详细模式。程序执行时产生更多输出。这项选项可以重复使用以产生更多和更多的输出。(例如,-v -v -v 在批处理模式下也会产生表格输出格式。)

  • --version, -V

    Command-Line Format --version

    显示版本信息并退出。

  • --vertical, -E

    Command-Line Format --vertical

    以垂直方式打印查询输出行(每一列值占一行)。没有这项选项,您可以通过在语句后面添加 \G 来为单个语句指定垂直输出。

  • --wait, -w

    Command-Line Format --wait

    如果无法建立连接,等待并重试,而不是中止。

  • --xml, -X

    Command-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=level

    Command-Line Format --zstd-compression-level=#
    Type 整数

    用于连接到服务器的压缩级别,该服务器使用zstd压缩算法。允许的级别从1到22,较大的值表示更高的压缩级别。默认的zstd压缩级别为3。压缩级别设置对不使用zstd压缩的连接无效。

    有关更多信息,请参阅第6.2.8节,“连接压缩控制”

  • telemetry_client

    Command-Line Format --telemetry_client
    Type 布尔值
    Default Value OFF

    启用遥测客户端插件(仅限Linux)。

    为了获取更多信息,请参阅第35章,遥测