Documentation Home

4.5.1.1 mysql 客户端选项

mysql支持以下选项,可以在命令行或 选项文件的组中指定[mysql][client]有关 MySQL 程序使用的选项文件的信息,请参阅第 4.2.2.2 节,“使用选项文件”

表 4.11 mysql 客户端选项

选项名称 描述 介绍 弃用
--auto-rehash 启用自动重新散列
--自动垂直输出 启用自动垂直结果集显示
- 批 不要使用历史文件
--二进制为十六进制 以十六进制表示法显示二进制值
--二进制模式 禁用 \r\n - 到 - \n 将 \0 转换和处理为查询结束
--绑定地址 使用指定的网络接口连接到 MySQL 服务器
--字符集目录 安装字符集的目录
--列名 在结果中写入列名称
--列类型信息 显示结果集元数据
- 注释 是否保留或删除发送到服务器的语句中的注释
- 压缩 压缩客户端和服务器之间发送的所有信息 8.0.18
--压缩算法 允许的服务器连接压缩算法 8.0.18
--connect-过期密码 向服务器表明客户端可以处理过期密码沙盒模式
--连接超时 连接超时前的秒数
- 数据库 要使用的数据库
--调试 写调试日志;仅当 MySQL 是使用调试支持构建时才支持
--调试检查 程序退出时打印调试信息
- 调试信息 程序退出时打印调试信息、内存和 CPU 统计信息
--default-auth 要使用的身份验证插件
--默认字符集 指定默认字符集
--defaults-extra-file 除了通常的选项文件外,还读取命名的选项文件
--defaults-文件 只读命名选项文件
--defaults-group-suffix 选项组后缀值
--分隔符 设置语句分隔符
--dns-srv-名称 使用 DNS SRV 查找主机信息 8.0.22
--启用明文插件 启用明文身份验证插件
- 执行 执行语句并退出
--fido-register-factor 必须进行注册的多因素身份验证因素 8.0.27
- 力量 即使出现 SQL 错误也继续
--get-server-public-key 从服务器请求 RSA 公钥
- 帮助 显示帮助信息并退出
--histignore 指定忽略哪些语句进行日志记录的模式
- 主持人 MySQL 服务器所在的主机
--html 生成 HTML 输出
--忽略空格 忽略函数名后的空格
--init 命令 连接后执行的SQL语句
--行号 为错误写行号
--load-data-local-dir LOAD DATA LOCAL 语句中指定文件的目录 8.0.21
--local-infile 启用或禁用加载数据的本地功能
--登录路径 从 .mylogin.cnf 读取登录路径选项
--最大允许数据包 发送到服务器或从服务器接收的最大数据包长度
--max-join-size 使用 --safe-updates 时连接中行的自动限制
--命名命令 启用命名的 mysql 命令
--net-buffer-length TCP/IP 和套接字通信的缓冲区大小
--网络命名空间 指定网络命名空间 8.0.22
--no-auto-rehash 禁用自动重新散列
--无哔声 发生错误时不发出蜂鸣声
--no-defaults 不读取选项文件
--one-database 忽略命令行中指定的默认数据库以外的语句
--寻呼机 使用给定的命令进行分页查询输出
- 密码 连接到服务器时使用的密码
--密码1 连接到服务器时使用的第一个多因素身份验证密码 8.0.27
--密码2 连接到服务器时使用的第二个多因素身份验证密码 8.0.27
--密码3 连接到服务器时使用的第三个多重身份验证密码 8.0.27
- 管道 使用命名管道连接到服务器(仅限 Windows)
--插件目录 安装插件的目录
- 港口 用于连接的 TCP/IP 端口号
--print-defaults 打印默认选项
- 迅速的 将提示设置为指定格式
- 协议 使用的传输协议
- 快的 不缓存每个查询结果
- 生的 写入列值而不进行转义转换
--重新连接 如果与服务器的连接丢失,自动尝试重新连接
--safe-updates , --i-am-a-dummy 仅允许指定键值的 UPDATE 和 DELETE 语句
--选择限制 使用 --safe-updates 时 SELECT 语句的自动限制
--server-public-key-path 包含 RSA 公钥的文件的路径名
--shared-memory-base-name 共享内存连接的共享内存名称(仅限 Windows)
--显示警告 如果有任何语句,则在每个语句后显示警告
--signint-ignore 忽略 SIGINT 信号(通常是键入 Control+C 的结果)
- 沉默的 静音模式
--skip-auto-rehash 禁用自动重新散列
--skip-column-names 不要在结果中写列名
--跳过行号 跳过错误行号
--skip-named-commands 禁用命名的 mysql 命令
--skip-寻呼机 禁用分页
--skip-重新连接 禁用重新连接
- 插座 要使用的 Unix 套接字文件或 Windows 命名管道
--ssl-ca 包含可信 SSL 证书颁发机构列表的文件
--ssl-capath 包含受信任的 SSL 证书颁发机构证书文件的目录
--ssl证书 包含 X.509 证书的文件
--ssl密码 连接加密的允许密码
--ssl-crl 包含证书吊销列表的文件
--ssl-crlpath 包含证书吊销列表文件的目录
--ssl-fips-模式 客户端是否开启FIPS模式
--ssl-密钥 包含 X.509 密钥的文件
--ssl模式 连接到服务器的所需安全状态
--ssl 会话数据 包含 SSL 会话数据的文件 8.0.29
--ssl-session-data-continue-on-failed-reuse session重用失败是否建立连接 8.0.29
--系统日志 将交互式语句记录到系统日志
- 桌子 以表格格式显示输出
- 球座 将输出的副本附加到命名文件
--tls-密码套件 用于加密连接的允许的 TLSv1.3 密码套件 8.0.16
--tls-版本 加密连接允许的 TLS 协议
--无缓冲 每次查询后刷新缓冲区
- 用户 连接到服务器时使用的 MySQL 用户名
--冗长 详细模式
- 版本 显示版本信息并退出
- 垂直的 垂直打印查询输出行(每列值一行)
- 等待 如果无法建立连接,请等待并重试而不是中止
--xml 生成 XML 输出
--zstd-压缩级别 使用 zstd 压缩的服务器连接的压缩级别 8.0.18

  • --help,-?

    显示帮助信息并退出。

  • --auto-rehash

    启用自动重新散列。默认情况下启用此选项,启用数据库、表和列名称完成。用于 --disable-auto-rehash 禁用重新散列。这会导致mysql启动得更快,但如果您想使用名称完成,则 必须发出 rehash命令或其 快捷方式。\#

    要完成名称,请输入第一部分并按 Tab 键。如果名字是明确的,mysql完成它。否则,您可以再次按 Tab 键查看以您目前键入的内容开头的可能名称。如果没有默认数据库,则不会完成。

    笔记

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

  • --auto-vertical-output

    如果结果集对于当前窗口来说太宽,则垂直显示结果集,否则使用正常的表格格式。(这适用于由 ;or终止的语句\G。)

  • --batch,-B

    使用制表符作为列分隔符打印结果,每行另起一行。使用这个选项, mysql不使用历史文件。

    批处理模式导致非表格输出格式和特殊字符转义。可以使用原始模式禁用转义;请参阅 --raw选项的说明。

  • --binary-as-hex

    给出此选项时,mysql使用十六进制表示法 ( ) 显示二进制数据。无论整体输出显示格式是表格、垂直、HTML 还是 XML,都会发生这种情况。 0xvalue

    --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 8.0.19 开始,当mysql在交互模式下运行时,默认启用该选项。此外,当隐式或显式启用该选项时 , status(或 )命令的输出包括此行:\s

    Binary data as: Hexadecimal

    要禁用十六进制表示法,请使用 --skip-binary-as-hex

  • --binary-mode

    此选项在处理 可能包含 值的mysqlbinlog输出时有帮助。BLOB默认情况下, mysql\r\n 语句字符串转换为\n并解释 \0为语句终止符。 --binary-mode禁用这两个功能。它还会禁用所有mysql 命令charset, 但delimiter在非交互模式下(对于通过管道传输到mysql或使用命令加载 的输入source)。

  • --bind-address=ip_address

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

  • --character-sets-dir=dir_name

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

  • --column-names

    在结果中写入列名称。

  • --column-type-info

    显示结果集元数据。此信息对应于 C APIMYSQL_FIELD数据结构的内容。请参阅C API 基本数据结构

  • --comments, -c

    是否去除或保留发送到服务器的语句中的注释。默认是 --skip-comments (去除注释),启用 --comments(保留注释)。

    笔记

    mysql客户端总是 将优化器提示传递给服务器,无论是否给出此选项。

    评论剥离已弃用。期望在未来的 MySQL 版本中删除此功能和控制它的选项。

  • --compress, -C

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

    从 MySQL 8.0.18 开始,不推荐使用此选项。预计它会在 MySQL 的未来版本中被删除。请参阅 配置传统连接压缩

  • --compression-algorithms=value

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

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

    这个选项是在 MySQL 8.0.18 中添加的。

  • --connect-expired-password

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

  • --connect-timeout=value

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

  • --database=db_name, -D db_name

    要使用的数据库。这主要在选项文件中很有用。

  • --debug[=debug_options], -# [debug_options]

    写调试日志。典型的 debug_options字符串是 . 默认值为。 d:t:o,file_named:t:o,/tmp/mysql.trace

    仅当 MySQL 是使用 WITH_DEBUG. Oracle 提供的 MySQL 发布二进制文件不是 使用此选项构建的。

  • --debug-check

    程序退出时打印一些调试信息。

    仅当 MySQL 是使用 WITH_DEBUG. Oracle 提供的 MySQL 发布二进制文件不是 使用此选项构建的。

  • --debug-info, -T

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

    仅当 MySQL 是使用 WITH_DEBUG. Oracle 提供的 MySQL 发布二进制文件不是 使用此选项构建的。

  • --default-auth=plugin

    关于使用哪个客户端身份验证插件的提示。请参阅第 6.2.17 节,“可插入身份验证”

  • --default-character-set=charset_name

    用作charset_name客户端和连接的默认字符集。

    如果操作系统使用一种字符集而mysql客户端默认使用另一种字符集,则此选项很有用。在这种情况下,输出的格式可能不正确。您通常可以通过使用此选项强制客户端改用系统字符集来解决此类问题。

    有关详细信息,请参阅 第 10.4 节,“连接字符集和排序规则”第 10.15 节,“字符集配置”

  • --defaults-extra-file=file_name

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

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

  • --defaults-file=file_name

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

    例外:即使有 --defaults-file,客户端程序也会读取.mylogin.cnf.

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

  • --defaults-group-suffix=str

    不仅要阅读通常的选项组,还要阅读具有通常名称和后缀 str. 例如, mysql通常会读取 [client][mysql] 组。如果此选项给出为 --defaults-group-suffix=_othermysql还会读取 [client_other][mysql_other]组。

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

  • --delimiter=str

    设置语句分隔符。默认值为分号 ( ;)。

  • --disable-named-commands

    禁用命名命令。仅使用\*表格,或仅在以分号 ( ;) 结尾的行的开头使用命名命令。 mysql启动时默认启用此选项 。然而,即使使用这个选项,长格式命令仍然从第一行开始工作。请参阅第 4.5.1.2 节,“mysql 客户端命令”

  • --dns-srv-name=name

    指定 DNS SRV 记录的名称,该记录确定用于建立与 MySQL 服务器的连接的候选主机。有关 MySQL 中 DNS SRV 支持的信息,请参阅第 4.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 记录中的优先级和权重值决定了尝试服务器的顺序。

    当使用 调用时 --dns-srv-namemysql仅尝试建立 TCP 连接。

    如果两者都给出,则 该--dns-srv-name选项优先于该 选项。导致连接建立使用 C API 函数而不是 . 但是,如果该命令随后在运行时使用并指定主机名参数,则该主机名优先 于mysql启动时指定 DNS SRV 记录的 任何选项 。--host--dns-srv-namemysql_real_connect_dns_srv()mysql_real_connect()connect--dns-srv-name

    这个选项是在 MySQL 8.0.22 中添加的。

  • --enable-cleartext-plugin

    启用mysql_clear_password明文身份验证插件。(请参阅 第 6.4.1.4 节,“客户端明文可插入身份验证”。)

  • --execute=statement, -e statement

    执行语句并退出。默认输出格式类似于使用 --batch. 有关示例,请参见 第 4.2.2.1 节“在命令行上使用选项” 。使用这个选项,mysql不使用历史文件。

  • --fido-register-factor=value

    必须执行 FIDO 设备注册的一个或多个因素。此选项值必须是单个值,或以逗号分隔的两个值。每个值必须为 2 或 3,因此允许的选项值为 '2''3'和 。 '2,3''3,2'

    例如,需要注册第三个身份验证因素的帐户调用mysql 客户端,如下所示:

    mysql --user=user_name --fido-register-factor=3

    需要注册第二和第三身份验证因素的帐户调用mysql 客户端,如下所示:

    mysql --user=user_name --fido-register-factor=2,3

    如果注册成功,则建立连接。如果存在挂起注册的身份验证因素,则在尝试连接到服务器时将连接置于挂起注册模式。在这种情况下,请断开连接并使用正确的 --fido-register-factor值重新连接以完成注册。

    注册是一个两步过程,包括 启动注册完成注册步骤。启动注册步骤执行此语句:

    ALTER USER user factor INITIATE REGISTRATION

    该语句返回一个结果集,其中包含一个 32 字节的质询、用户名和依赖方 ID(参见 参考资料 authentication_fido_rp_id)。

    完成注册步骤执行此语句:

    ALTER USER user factor FINISH REGISTRATION SET CHALLENGE_RESPONSE AS 'auth_string'

    该语句完成注册并将以下信息作为一部分发送到服务器 auth_string:身份验证器数据、X.509 格式的可选证明证书和签名。

    启动和注册步骤必须在单个连接中执行,因为客户端在启动步骤中收到的质询将保存到客户端连接处理程序中。如果注册步骤是由不同的连接执行的,注册将失败。该 --fido-register-factor选项同时执行启动和注册步骤,这避免了上述失败情况并避免了必须ALTER USER手动执行启动和注册语句。

    --fido-register-factor 选项仅适用于mysql 客户端和 MySQL Shell。其他 MySQL 客户端程序不支持它。

    有关相关信息,请参阅 使用 FIDO 身份验证

  • --force,-f

    即使出现 SQL 错误也继续。

  • --get-server-public-key

    从服务器请求基于 RSA 密钥对的密码交换所需的公钥。此选项适用于使用 caching_sha2_password身份验证插件进行身份验证的客户端。对于该插件,除非请求,否则服务器不会发送公钥。对于未使用该插件进行身份验证的帐户,将忽略此选项。如果不使用基于 RSA 的密码交换,它也会被忽略,就像客户端使用安全连接连接到服务器时的情况一样。

    如果 给出并指定一个有效的公钥文件,它优先于 . --server-public-key-path=file_name--get-server-public-key

    有关 caching_sha2_password插件的信息,请参阅 第 6.4.1.2 节,“缓存 SHA-2 可插入身份验证”

  • --histignore

    一个或多个以冒号分隔的模式的列表,指定为了记录目的而忽略的语句。这些模式被添加到默认模式列表 ( "*IDENTIFIED*:*PASSWORD*")。为该选项指定的值会影响写入历史文件的语句的日志记录, syslog如果 --syslog给出该选项,也会影响。有关详细信息,请参阅第 4.5.1.3 节,“mysql 客户端日志记录”

  • --host=host_name, -h host_name

    连接到给定主机上的 MySQL 服务器。

    如果两者都给出,则 该--dns-srv-name选项优先于该 选项。导致连接建立使用 C API 函数而不是 . 但是,如果该命令随后在运行时使用并指定主机名参数,则该主机名优先 于mysql启动时指定 DNS SRV 记录的 任何选项 。--host--dns-srv-namemysql_real_connect_dns_srv()mysql_real_connect()connect--dns-srv-name

  • --html,-H

    生成 HTML 输出。

  • --ignore-spaces, -i

    忽略函数名称后的空格。IGNORE_SPACE在SQL 模式 的讨论中描述了这种效果 (请参阅第 5.1.11 节,“服务器 SQL 模式”)。

  • --init-command=str

    连接到服务器后执行的 SQL 语句。如果启用了自动重新连接,则在重新连接发生后再次执行该语句。

  • --line-numbers

    写下错误的行号。禁用它 --skip-line-numbers

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

    此选项会影响客户端LOCAL 的操作能力LOAD DATA 。它指定LOAD DATA LOCAL语句中命名的文件必须位于的目录。的效果 --load-data-local-dir取决于LOCAL数据加载是启用还是禁用:

    应用时--load-data-local-dir ,选项值指定本地数据文件必须位于的目录。无论底层文件系统是否区分大小写,目录路径名和要加载文件的路径名的比较都是区分大小写的。如果选项值为空字符串,则它不命名目录,结果是不允许本地数据加载任何文件。

    例如,要显式禁用除位于/my/local/data 目录中的文件之外的本地数据加载,请像这样调用mysql

    mysql --local-infile=0 --load-data-local-dir=/my/local/data

    当同时给出--local-infile--load-data-local-dir时,给出它们的顺序无关紧要。

    在mysql 中成功使用LOCAL加载操作还需要服务器允许本地加载;参见 第 6.1.6 节,“LOAD DATA LOCAL 的安全注意事项”

    --load-data-local-dir 选项是在 MySQL 8.0.21 中添加的。

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

    默认情况下,LOCAL功能 LOAD DATA由默认编译到 MySQL 客户端库中确定。要显式启用或禁用LOCAL数据加载,请使用该 --local-infile选项。当没有值时,该选项启用 LOCAL数据加载。当作为 --local-infile=0or 给出时--local-infile=1,该选项禁用或启用LOCAL数据加载。

    如果LOCAL功能被禁用,该 --load-data-local-dir选项可用于允许限制本地加载位于指定目录中的文件。

    在mysql 中成功使用LOCAL加载操作还需要服务器允许本地加载;参见 第 6.1.6 节,“LOAD DATA LOCAL 的安全注意事项”

  • --login-path=name

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

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

  • --max-allowed-packet=value

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

  • --max-join-size=value

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

  • --named-commands, -G

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

  • --net-buffer-length=value

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

  • --network-namespace=name

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

    这个选项是在 MySQL 8.0.22 中添加的。它仅在实现网络命名空间支持的平台上可用。

  • --no-auto-rehash, -A

    这与 具有相同的效果 --skip-auto-rehash。请参阅说明 --auto-rehash

  • --no-beep,-b

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

  • --no-defaults

    不要读取任何选项文件。如果程序启动因从选项文件中读取未知选项而失败, --no-defaults可用于防止它们被读取。

    例外情况是.mylogin.cnf 文件在所有情况下都会被读取(如果存在)。这允许以比在命令行上更安全的方式指定密码,即使在--no-defaults 使用 时也是如此。要创建.mylogin.cnf,请使用mysql_config_editor实用程序。请参阅 第 4.6.7 节,“mysql_config_editor — MySQL 配置实用程序”

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

  • --one-database, -o

    忽略那些在默认数据库是在命令行上命名的数据库时出现的语句。这个选项是基本的,应该小心使用。语句过滤仅基于 USE语句。

    最初,mysql执行输入中的语句,因为在命令行中指定数据库 db_name相当于 在输入的开头插入。然后,对于遇到 的每个 语句, mysql接受或拒绝以下语句,具体取决于指定的数据库是否是命令行中的数据库。声明的内容无关紧要。 USE db_nameUSE

    假设调用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将按如下方式处理输入:

    • 执行该DELETE语句是因为默认数据库是 db1,即使该语句命名了不同数据库中的表也是如此。

    • 和语句不执行,因为默认数据库不执行 DROP TABLE, 即使语句在. CREATE TABLEdb1db1

    • 执行INSERTand CREATE TABLE语句是因为默认数据库是 db1,即使该 CREATE TABLE语句在不同的数据库中命名了一个表。

  • --pager[=command]

    使用给定的命令进行分页查询输出。如果省略该命令,则默认分页器是您的 PAGER环境变量的值。有效的寻呼机有lessmorecat [> filename]等等。此选项仅适用于 Unix 且仅适用于交互模式。要禁用分页,请使用 --skip-pager. 第 4.5.1.2 节,“mysql 客户端命令”,进一步讨论了输出分页。

  • --password[=password], -p[password]

    用于连接到服务器的 MySQL 帐户的密码。密码值是可选的。如果没有给出, mysql会提示输入一个。如果给定,则后面 的密码之间 不能有空格。如果未指定密码选项,则默认为不发送密码。 --password=-p

    在命令行上指定密码应该被认为是不安全的。为避免在命令行中提供密码,请使用选项文件。请参阅 第 6.1.2.1 节,“密码安全的最终用户指南”

    要明确指定没有密码并且 mysql不应提示输入密码,请使用该 --skip-password 选项。

  • --password1[=pass_val]

    用于连接服务器的 MySQL 帐户的多因素身份验证因子 1 的密码。密码值是可选的。如果没有给出, mysql会提示输入一个。如果给定,则后面的密码和密码之间 不能有空格--password1=。如果未指定密码选项,则默认为不发送密码。

    在命令行上指定密码应该被认为是不安全的。为避免在命令行中提供密码,请使用选项文件。请参阅 第 6.1.2.1 节,“密码安全的最终用户指南”

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

    --password1and --password是同义词,就像 --skip-password1 and 一样--skip-password

  • --password2[=pass_val]

    用于连接到服务器的 MySQL 帐户的多因素身份验证因子 2 的密码。此选项的语义类似于 ; 的语义 --password1。有关详细信息,请参阅该选项的说明。

  • --password3[=pass_val]

    用于连接服务器的 MySQL 帐户的多重身份验证因子 3 的密码。此选项的语义类似于 ; 的语义 --password1。有关详细信息,请参阅该选项的说明。

  • --pipe,-W

    在 Windows 上,使用命名管道连接到服务器。仅当服务器启动时 named_pipe启用了支持命名管道连接的系统变量时,此选项才适用。此外,进行连接的用户必须是 named_pipe_full_access_group 系统变量指定的 Windows 组的成员。

  • --plugin-dir=dir_name

    在其中查找插件的目录。如果该--default-auth 选项用于指定身份验证插件但 mysql未找到它,请指定此选项。请参阅 第 6.2.17 节,“可插入身份验证”

  • --port=port_num, -P port_num

    对于 TCP/IP 连接,要使用的端口号。

  • --print-defaults

    打印程序名称和它从选项文件中获取的所有选项。

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

  • --prompt=format_str

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

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

    用于连接到服务器的传输协议。当其他连接参数通常导致使用您想要的协议以外的协议时,它很有用。有关允许值的详细信息,请参阅 第 4.2.7 节“连接传输协议”

  • --quick,-q

    不要缓存每个查询结果,在收到时打印每一行。如果输出被挂起,这可能会降低服务器速度。使用这个选项,mysql不使用历史文件。

  • --raw,-r

    对于表格输出,列周围的装箱使一列值能够与另一列值区分开来。对于非表格输出(例如在批处理模式下或在给出--batchor --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

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

  • --safe-updates, --i-am-a-dummy, -U

    如果启用此选项,则 在子句或子句中不使用键的 UPDATE语句 DELETE会产生错误。此外,对产生(或估计会产生)非常大的结果集的语句进行了限制 。如果您在选项文件中设置了此选项,则可以 在命令行上使用来覆盖它。有关此选项的更多信息,请参阅使用安全更新模式 (--safe-updates)WHERELIMITSELECT--skip-safe-updates

  • --select-limit=value

    SELECT使用时语句 的自动限制 --safe-updates。(默认值为 1,000。)

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

    PEM 格式文件的路径名,其中包含服务器所需的公钥客户端副本,用于基于 RSA 密钥对的密码交换。此选项适用于使用 sha256_passwordcaching_sha2_password身份验证插件进行身份验证的客户端。对于未使用其中一个插件进行身份验证的帐户,将忽略此选项。如果不使用基于 RSA 的密码交换,它也会被忽略,就像客户端使用安全连接连接到服务器时的情况一样。

    如果 给出并指定一个有效的公钥文件,它优先于 . --server-public-key-path=file_name--get-server-public-key

    对于sha256_password,此选项仅适用于使用 OpenSSL 构建 MySQL 的情况。

    有关sha256_passwordcaching_sha2_password插件的信息,请参阅 第 6.4.1.3 节,“SHA-256 可插入身份验证”第 6.4.1.2 节,“缓存 SHA-2 可插入身份验证”

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

    在 Windows 上,用于使用共享内存与本地服务器建立连接的共享内存名称。默认值为MYSQL。共享内存名称区分大小写。

    仅当服务器启动时 shared_memory启用了支持共享内存连接的系统变量时,此选项才适用。

  • --show-warnings

    如果有任何语句,则在每个语句之后显示警告。此选项适用于交互和批处理模式。

  • --sigint-ignore

    忽略SIGINT信号(通常是键入Control+C的结果)。

    如果没有此选项,则键入Control+C 会中断当前语句(如果有的话),否则会取消任何部分输入行。

  • --silent,-s

    静音模式。产生更少的输出。可以多次给出此选项以产生越来越少的输出。

    此选项导致非表格输出格式和特殊字符转义。可以使用原始模式禁用转义;请参阅 --raw选项的说明。

  • --skip-column-names, -N

    不要在结果中写列名。

  • --skip-line-numbers, -L

    不要为错误写行号。当您想要比较包含错误消息的结果文件时很有用。

  • --socket=path, -S path

    对于与 的连接localhost,要使用的 Unix 套接字文件,或者在 Windows 上,要使用的命名管道的名称。

    在 Windows 上,仅当服务器启动时named_pipe 启用了支持命名管道连接的系统变量时,此选项才适用。此外,进行连接的用户必须是 named_pipe_full_access_group 系统变量指定的 Windows 组的成员。

  • --ssl*

    以 开头的选项--ssl指定是否使用加密连接到服务器并指示在哪里可以找到 SSL 密钥和证书。请参阅 加密连接的命令选项

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

    控制是否在客户端启用 FIPS 模式。该 --ssl-fips-mode选项与其他 选项的不同之处在于它不用于建立加密连接,而是用于影响允许哪些加密操作。请参见第 6.8 节 “FIPS 支持”--ssl-xxx

    这些--ssl-fips-mode值是允许的:

    • OFF: 禁用 FIPS 模式。

    • ON:启用 FIPS 模式。

    • STRICT:启用严格 FIPS 模式。

    笔记

    如果 OpenSSL FIPS 对象模块不可用,则唯一允许的 --ssl-fips-mode值为 OFF. 在这种情况下,设置 --ssl-fips-modeONSTRICT会导致客户端在启动时发出警告并在非 FIPS 模式下运行。

  • --syslog,-j

    此选项使mysql将交互式语句发送到系统日志记录工具。在 Unix 上,这是syslog; 在 Windows 上,它是 Windows 事件日志。记录消息出现的目的地取决于系统。在 Linux 上,目的地通常是/var/log/messages文件。

    下面是在 Linux 上使用 --syslog. 此输出经过格式化以提高可读性;每个记录的消息实际上只占一行。

    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;'

    有关详细信息,请参阅第 4.5.1.3 节,“mysql 客户端日志记录”

  • --table,-t

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

  • --tee=file_name

    将输出副本附加到给定文件。此选项仅适用于交互模式。第 4.5.1.2 节,“mysql 客户端命令”,进一步讨论了 tee 文件。

  • --tls-ciphersuites=ciphersuite_list

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

    这个选项是在 MySQL 8.0.16 中添加的。

  • --tls-version=protocol_list

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

  • --unbuffered, -n

    每次查询后刷新缓冲区。

  • --user=user_name, -u user_name

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

  • --verbose,-v

    详细模式。产生更多关于程序做什么的输出。可以多次给出此选项以产生越来越多的输出。(例如,-v -v -v即使在批处理模式下也能生成表格输出格式。)

  • --version,-V

    显示版本信息并退出。

  • --vertical, -E

    垂直打印查询输出行(每列值一行)。如果没有此选项,您可以通过以 . 结尾来为单个语句指定垂直输出 \G

  • --wait,-w

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

  • --xml,-X

    生成 XML 输出。

    <field name="column_name">NULL</field>

    --xmlmysql一起使用 时的输出与mysqldump 的输出相匹配 --xml。有关详细信息,请参阅 第 4.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

    用于连接到使用zstd压缩算法的服务器的压缩级别。允许的级别从 1 到 22,值越大表示压缩级别越高。默认 zstd压缩级别为 3。压缩级别设置对不使用zstd压缩的连接没有影响。

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

    这个选项是在 MySQL 8.0.18 中添加的。