MySQL客户端选项

来自泡泡学习笔记
BrainBs讨论 | 贡献2023年7月7日 (五) 03:19的版本 (创建页面,内容为“ mysql支持以下选项,可以在命令行中或选项文件的[mysql]和[client]组中指定。 *--help, -? 显示帮助信息并退出。 *--auto-rehash 启用自动重建哈希。此选项默认启用,可实现数据库、表和列名的自动补全。使用--disable-auto-rehash来禁用哈希重建。这样可以加快mysql的启动速度,但如果要使用名称补全功能,您必须发出rehash命令或其#快捷方式。 要完成一个…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

mysql支持以下选项,可以在命令行中或选项文件的[mysql]和[client]组中指定。


  • --help, -?

显示帮助信息并退出。


  • --auto-rehash

启用自动重建哈希。此选项默认启用,可实现数据库、表和列名的自动补全。使用--disable-auto-rehash来禁用哈希重建。这样可以加快mysql的启动速度,但如果要使用名称补全功能,您必须发出rehash命令或其#快捷方式。

要完成一个名称,请输入第一部分并按下Tab键。如果名称是明确的,mysql将自动补全它。否则,您可以再次按下Tab键,以查看与您已输入的内容开头相符的可能名称。如果没有默认数据库,则不会进行补全。

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


  • --auto-vertical-output

如果结果集对于当前窗口太宽而无法显示,则以垂直方式显示,并以普通的表格式显示。 (这适用于以;或\G结束的语句。)


  • --batch, -B

使用制表符作为列分隔符打印结果,并将每行放在新行上。使用该选项后,mysql不使用历史文件。

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


  • --binary-as-hex

当使用此选项时,mysql以十六进制表示(0x值)显示二进制数据。无论总体输出显示格式是表格、垂直、HTML还是XML,均适用。

启用--binary-as-hex会影响所有二进制字符串的显示,包括由CHAR()和UNHEX()等函数返回的字符串。以下示例使用A的ASCII代码(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以交互模式运行时,默认情况下启用此选项。此外,当隐式或显式启用该选项时,状态(或\s)命令的输出包括此行:

Binary data as: Hexadecimal

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


  • --binary-mode(二进制模式)

该选项在处理可能包含BLOB值的mysqlbinlog输出时很有帮助。默认情况下,mysql将语句字符串中的\r\n转换为\n,并将\0解释为语句终止符。--binary-mode禁用了这两个特性。它还在非交互模式下禁用了除字符集和分隔符之外的所有mysql命令(用于输入管道到mysql或使用source命令加载的情况)。


  • --bind-address=ip_address(绑定地址=IP地址)

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


  • --character-sets-dir=dir_name(字符集目录=目录名)

字符集安装的目录。


  • --column-names(列名)

在结果中写入列名。


  • --column-type-info(列类型信息)

显示结果集元数据。此信息对应于C API MYSQL_FIELD数据结构的内容。


  • --comments, -c(注释)

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

注意
无论是否给出此选项,mysql客户端始终会向服务器传递优化器提示。

注释移除已被弃用。预计在以后的MySQL版本中删除此功能和控制它的选项。


  • --compress, -C(压缩)

尽可能压缩客户端和服务器之间传输的所有信息。

从MySQL 8.0.18开始,此选项已被弃用。预计未来版本中将删除该选项。参见配置旧版连接压缩。


  • --compression-algorithms=value(压缩算法)

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

此选项在MySQL 8.0.18中添加。


  • --connect-expired-password(连接过期密码)

如果用于连接的帐户密码已过期,向服务器指示客户端可以处理沙箱模式。这对于非交互式调用mysql非常有用,因为通常情况下,使用已过期密码的帐户进行连接的非交互式客户端会被服务器断开连接。


  • --connect-timeout=value(连接超时)

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


  • --database=db_name, -D db_name

使用的数据库。主要用于选项文件。


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

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

此选项仅适用于使用WITH_DEBUG构建MySQL的情况。由Oracle提供的MySQL发行版二进制文件不使用此选项构建。


  • --debug-check

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

此选项仅适用于使用WITH_DEBUG构建MySQL的情况。由Oracle提供的MySQL发行版二进制文件不使用此选项构建。


  • --debug-info, -T

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

此选项仅适用于使用WITH_DEBUG构建MySQL的情况。由Oracle提供的MySQL发行版二进制文件不使用此选项构建。


  • --default-auth=plugin

关于要使用的客户端认证插件的提示。


  • --default-character-set=charset_name

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

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


  • --defaults-extra-file=file_name

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


  • --defaults-file=file_name

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

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


  • --defaults-group-suffix=str

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


  • --delimiter=str

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


  • --disable-named-commands

禁用命名命令。只使用*形式,或仅在以分号(;)结尾的行开头使用命名命令。mysql默认启用此选项。但是,即使在此选项下,长格式命令仍然从第一行起作用。


  • --dns-srv-name=name

指定一个DNS SRV记录的名称,用于确定连接MySQL服务器时要使用的候选主机。


假设DNS已经配置了example.com域的SRV信息如下:

名称                     TTL   类别   优先级  权重   端口   目标主机
_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-name调用时,mysql只尝试建立TCP连接。


如果同时指定了--host参数和--dns-srv-name参数,--dns-srv-name参数优先于--host参数生效。--dns-srv-name导致连接建立使用mysql_real_connect_dns_srv() C API函数而不是mysql_real_connect()。然而,如果在运行时使用connect命令并指定主机名参数,则该主机名优先于mysql启动时给出的--dns-srv-name选项来指定DNS SRV记录。


此选项在MySQL 8.0.22中添加。


  • --enable-cleartext-plugin

启用mysql_clear_password明文身份验证插件。


  • --execute=statement, -e statement

执行语句并退出。默认输出格式与--batch产生的格式相同。


  • --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。


  • --histignore

一个或多个以冒号分隔的模式列表,用于指定在日志记录过程中要忽略的语句。这些模式被添加到默认的模式列表("IDENTIFIED:PASSWORD")中。此选项指定的值会影响写入历史文件和(如果给定了 --syslog 选项)写入系统日志的语句记录。


  • --host=主机名, -h 主机名

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


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


  • --html, -H

生成HTML格式的输出。


  • --ignore-spaces, -i

忽略函数名后面的空格。这会影响 IGNORE_SPACE SQL 模式的效果。


  • --init-command=str

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


  • --line-numbers

为错误写入行号。使用 --skip-line-numbers 参数禁用此功能。


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

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


1、如果默认情况下在MySQL客户端库中启用了LOCAL数据加载,或者通过指定 --local-infile[=1] 启用了,那么 --load-data-local-dir 选项将被忽略。

2、如果默认情况下在MySQL客户端库中禁用了LOCAL数据加载,或者通过指定 --local-infile=0 禁用了,那么 --load-data-local-dir 选项将生效。


当 --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 加载操作需要服务器允许本地加载。


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


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

默认情况下,LOAD DATA 的 LOCAL 功能由编译进 MySQL 客户端库中的默认设置确定。要显式地启用或禁用 LOCAL 数据加载功能,请使用 --local-infile 选项。当不带任何值给出时,该选项会启用 LOCAL 数据加载。当给出为 --local-infile=0 或 --local-infile=1 时,该选项会禁用或启用 LOCAL 数据加载。


如果禁用 LOCAL 功能,可以使用 --load-data-local-dir 选项来允许在指定目录中进行受限制的本地加载文件。


在 mysql 中成功使用 LOCAL 加载操作还要求服务器允许本地加载。


  • --login-path=name

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


  • --max-allowed-packet=value

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


  • --max-join-size=value

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


  • --named-commands, -G

启用命名的 mysql 命令。除了短格式命令外,还允许使用长格式命令。例如,quit 和 \q 都是可以识别的。使用 --skip-named-commands 可以禁用命名命令。


  • --net-buffer-length=value

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


  • --network-namespace=name

用于 TCP/IP 连接的网络命名空间。如果省略,连接将使用默认(全局)命名空间。


该选项在 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 实用程序。


  • --one-database, -o

只处理指定命令行中默认数据库的语句,忽略其他语句。这个选项比较基础,使用时需要小心。语句过滤仅基于USE语句。


初始情况下,mysql会执行输入的语句,因为在命令行上指定数据库db_name等同于在输入的开头插入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的处理方式如下:

1、由于默认数据库是db1,所以执行DELETE语句,即使该语句引用了不同数据库中的表。

2、由于默认数据库不是db1,所以不执行DROP TABLE和CREATE TABLE语句,即使这些语句引用了db1中的表。

3、由于默认数据库是db1,所以执行INSERT和CREATE TABLE语句,即使CREATE TABLE语句引用了不同数据库中的表。


  • --pager[=command]

为分页查询输出指定命令。如果省略命令,则默认pager是PAGER环境变量的值。有效的pager可以是less、more、cat [> filename]等等。这个选项仅在Unix系统上且只在交互模式下工作。要禁用分页,请使用--skip-pager。


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

用于连接到服务器的MySQL账号的密码。密码值是可选的。如果不提供,mysql会提示输入密码。如果指定了密码,则--password=或-p与后面的密码之间不能有空格。如果没有指定密码选项,则默认不发送密码。


在命令行上指定密码应被视为不安全。为避免在命令行上给出密码,使用选项文件。


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


  • --password1[=pass_val]

用于连接到服务器的MySQL账号的多因素身份验证因素1的密码。密码值是可选的。如果不提供,mysql会提示输入密码。如果指定了密码,则--password1=与后面的密码之间不能有空格。如果没有指定密码选项,则默认不发送密码。


在命令行上指定密码应被视为不安全。为避免在命令行上给出密码,使用选项文件。


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


--password1和--password是同义的,--skip-password1和--skip-password也是同义的。


  • --password2[=pass_val]

用于连接到服务器的MySQL账号的多因素身份验证因素2的密码。这个选项的语义与--password1类似,请参阅--password1的描述获取详细信息。


  • --password3[=pass_val]

用于连接到服务器的MySQL账号的多因素身份验证因子3的密码。此选项的语义与--password1的语义类似;有关详细信息,请参阅该选项的描述。


  • --pipe, -W

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


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

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


客户端侧插件选项的默认值使用了Security Support Provider Interface(SSPI),它能够从Windows的内存缓存中获取凭据。或者,客户端用户可以选择一种模式,在Windows上通过MIT Kerberos库支持Generic Security Service Application Program Interface(GSSAPI)。GSSAPI能够通过使用kinit命令生成的缓存凭据。


有关更多信息,请参见GSSAPI Mode下的Windows客户端命令。


  • --plugin-dir=dir_name

用于查找插件的目录。如果使用了--default-auth选项来指定一个认证插件,但mysql找不到它,则需要指定此选项。


  • --port=port_num, -P port_num

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


  • --print-defaults

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


  • --prompt=format_str

将提示设置为指定的格式。默认值为mysql>。


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

用于与服务器连接的传输协议。当其他连接参数通常导致使用不希望的协议时,这很有用。


  • --quick, -q

不缓存每个查询结果,按接收到的顺序打印每一行。如果输出被暂停,这可能会减慢服务器的速度。使用此选项,mysql不使用历史文件。


  • --raw, -r

对于表格输出,围绕列的“盒子化”使一个列值能够与另一个区分开来。对于非表格输出(例如批处理模式或给出--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

如果与服务器的连接丢失,会自动尝试重新连接。每次连接断开时,只会进行一次重新连接尝试。如果要禁止重新连接行为,请使用--skip-reconnect选项。


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

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


  • --select-limit=value

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


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

以PEM格式包含服务器所需的公钥的客户端端副本的文件的路径名。此选项适用于使用sha256_password或caching_sha2_password身份验证插件进行身份验证的客户端。对于不使用其中任何插件进行身份验证的帐户,将忽略此选项。如果未使用基于RSA的密码交换(客户端使用安全连接连接到服务器时),也将忽略此选项。


如果给出了--server-public-key-path=file_name并指定了有效的公钥文件,则此选项优先于--get-server-public-key。


对于sha256_password,仅当使用OpenSSL构建MySQL时,此选项才适用。


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

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

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


  • --show-warnings

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


  • --sigint-ignore

忽略SIGINT信号(通常是由于键入Control+C而导致的)。

如果没有此选项,则在当前语句中断(如果存在)或取消任何部分输入行。


  • --silent, -s

静默模式。产生较少的输出。可以多次使用此选项以产生越来越少的输出。

此选项会产生非表格格式的输出,并转义特殊字符。通过使用原始模式可以禁用转义;请参阅--raw选项的描述。


  • --skip-column-names, -N

结果中不包括列名。


  • --skip-line-numbers, -L

不在错误中包括行号。在想要比较包含错误消息的结果文件时非常有用。


  • --socket=path, -S path

对于本地主机的连接,在Unix上使用的Unix套接字文件,或者在Windows上使用的命名管道的名称。


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


  • --ssl *

以 --ssl 开头的选项指定是否使用加密连接到服务器,并指示 SSL 密钥和证书的位置。有关加密连接的命令选项,请参见加密连接的命令选项。


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

控制是否在客户端上启用 FIPS 模式。 --ssl-fips-mode 选项与其他 --ssl-xxx 选项不同,它不用于建立加密连接,而是影响允许使用的加密操作。


允许使用以下 --ssl-fips-mode 值:

OFF:禁用 FIPS 模式。
ON:启用 FIPS 模式。
STRICT:启用 "严格" 的 FIPS 模式。
注意
如果 OpenSSL FIPS 对象模块不可用,则 --ssl-fips-mode 的唯一允许值为 OFF。在这种情况下,将 --ssl-fips-mode 设置为 ON 或 STRICT 会导致客户端启动时产生警告,并以非 FIPS 模式运行。


从 MySQL 8.0.34 开始,此选项已弃用。预计在将来的 MySQL 版本中删除该选项。


  • --syslog,-j

此选项使 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;'


  • --table,-t

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


  • --tee=file_name

将输出的副本附加到给定文件中。该选项仅在交互模式下工作。


  • --tls-ciphersuites=ciphersuite_list

用于使用TLSv1.3的加密连接的可允许密码套件列表。该值是一个由一个或多个以冒号分隔的密码套件名称组成的列表。可以为此选项命名的密码套件取决于用于编译MySQL的SSL库。

该选项在MySQL 8.0.16中添加。


  • --tls-version=protocol_list

用于加密连接的可允许的TLS协议列表。该值是一个由一个或多个以逗号分隔的协议名称组成的列表。可以为此选项命名的协议取决于用于编译MySQL的SSL库。


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


使用mysql命令的--xml选项时,产生的输出与mysqldump --xml的输出相匹配。


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 压缩的连接没有影响。

该选项在 MySQL 8.0.18 中添加。