MySQL 外壳 8.0  / 附录 A MySQL Shell 命令参考  /  A.1 mysqlsh — MySQL Shell

A.1 mysqlsh — MySQL Shell

MySQL Shell 是 MySQL 的高级命令行客户端和代码编辑器。除了 SQL,MySQL Shell 还为 JavaScript 和 Python 提供脚本功能。有关使用 MySQL Shell 的信息,请参阅 MySQL Shell 8.0。当 MySQL Shell 通过 X 协议连接到 MySQL 服务器时,X DevAPI 可用于处理关系数据和文档数据,请参阅 使用 MySQL 作为文档存储。MySQL Shell 包括 AdminAPI,使您能够使用 InnoDB Cluster、InnoDB ClusterSet 和 InnoDB ReplicaSet 部署;请参阅第 6 章,MySQL AdminAPI

这里描述的许多选项都与 MySQL Shell 和 MySQL Server 实例之间的连接有关。有关详细信息,请参阅 第 4.3 节,“MySQL Shell 连接”

mysqlsh支持以下命令行选项。

表 A.1 mysqlsh 选项

选项名称 描述 介绍 弃用
-- API命令行集成开始
--auth-方法 要使用的身份验证方法
- 簇 连接到 InnoDB 集群 8.0.4
--列类型信息 打印结果集中列的元数据 8.0.14
- 压缩 压缩客户端和服务器之间发送的所有信息 8.0.14
--连接超时 全局会话的连接超时 8.0.13
--credential-store-helper 密码的 Secret Store 助手 8.0.12
- 数据库 要使用的模式(--schema 的别名)
--dba 与 MySQL 5.7 服务器连接时启用 X 协议
--dba-log-sql 记录由 AdminAPI 操作执行的 SQL 语句 8.0.18 8.0.30
--数据库密码 连接到服务器时使用的密码 8.0.13
--dbuser 连接到服务器时使用的 MySQL 用户名 8.0.13
- 执行 执行命令并退出
--fido-register-factor 向服务器注册一个 FIDO 设备进行身份验证 8.0.29
- 文件 要以批处理模式处理的文件
- 力量 即使发生错误,仍以 SQL 和批处理模式继续
--get-server-public-key 从服务器请求 RSA 公钥
- 帮助 显示帮助信息并退出
--histignore 未添加到历史记录的字符串 8.0.3
- 主持人 MySQL 服务器实例所在的主机
- 进口 从文件或标准输入导入 JSON 文档 8.0.13
- 交互的 以批处理模式模拟交互模式
--js , --javascript 以 JavaScript 模式启动
--json 以 JSON 格式打印输出
--日志文件 此实例的日志文件位置 8.0.27
--日志级别 指定日志记录级别
--log-sql 将所有 MySQL Shell 生成的 SQL 语句记录到 MySQL Shell 日志文件中。 8.0.30
-嘛 自动检测会话的传输协议 8.0.3 8.0.13
--mysql , -mc 使用经典 MySQL 协议创建会话 8.0.3
--mysql-插件目录 安装客户端插件的目录 8.0.27
--mysqlx , -mx 使用 X 协议创建会话 8.0.3
--名称缓存 启用基于活动默认架构的表名自动加载 8.0.4
--no-name-cache 禁用自动完成 8.0.4
--无密码 没有为此连接提供密码
--无向导, -- nw 禁用交互式向导
--寻呼机 用于显示输出的外部分页器工具 8.0.13
- 密码 连接到服务器时使用的密码(--dbpassword 的别名)
--密码1 多因素身份验证的密码 1(相当于 --password) 8.0.28
--密码2 用于多重身份验证的密码 2 8.0.28
--密码3 多重身份验证的密码 3 8.0.28
--passwords-from-stdin 从标准输入读取密码
- 港口 用于连接的 TCP/IP 端口号
--py , --python 以 Python 模式启动
--pyc 执行 Python 命令并退出。在此之后指定的任何选项都被视为已处理命令的参数。 8.0.31
--安静启动 在不打印介绍信息的情况下开始
--recreate-schema 删除并重新创建模式
--redirect-primary 确保连接到 InnoDB 集群的主节点 8.0.4
--redirect-secondary 确保连接到 InnoDB 集群的辅助节点
--结果格式 设置此会话的输出格式 8.0.14
--保存密码 密码如何存储在 Secret Store 中 8.0.12
--模式 要使用的模式
--server-public-key-path 包含 RSA 公钥的文件的路径名
--显示警告 如果有任何语句,则在每个语句后显示警告(在 SQL 模式下)
- 插座 要使用的 Unix 套接字文件或 Windows 命名管道(仅限经典 MySQL 协议)
--sql 以SQL模式启动,自动检测用于连接的协议
--sqlc 使用经典的 MySQL 协议连接以 SQL 模式启动
--sqlx 使用 X 协议连接以 SQL 模式启动 8.0.3
--ssh 用于连接到 SSH 服务器的 URI 8.0.28
--ssh 配置文件 连接SSH服务器的配置文件 8.0.28
--ssh 身份文件 用于连接到 SSH 服务器的标识文件 8.0.28
--ssl-ca 包含可信 SSL 证书颁发机构列表的文件
--ssl-capath 包含受信任的 SSL 证书颁发机构证书文件的目录
--ssl证书 包含 X.509 证书的文件
--ssl密码 要使用的 SSL 密码的名称
--ssl-crl 包含证书吊销列表的文件
--ssl-crlpath 包含证书吊销列表文件的目录
--ssl-密钥 包含 X.509 密钥的文件
--ssl模式 连接到服务器的所需安全状态
--系统日志 将交互式 SQL 语句记录到系统日志记录工具 8.0.24
--标签式 以制表符分隔格式显示输出
- 桌子 以表格格式显示输出
--tls-版本 加密连接允许的 TLS 协议
--uri URI 格式的会话信息
- 用户 连接到服务器时使用的 MySQL 用户名(--dbuser 的别名)
--冗长 激活控制台的详细输出 8.0.17
- 版本 显示版本信息并退出
- 垂直的 垂直显示所有 SQL 结果

  • --help,-?

    显示帮助信息并退出。

  • --

    标记 mysqlsh 选项列表的结尾和命令的开始及其用于 MySQL Shell 的 API 命令行集成的参数。您可以使用以下语法从命令行执行 MySQL Shell 全局对象的方法:

    mysqlsh [options]  -- object method [arguments]

    有关详细信息,请参阅第 5.8 节 “API 命令行集成”

  • --auth-method=method

    用于帐户的身份验证方法。取决于用于帐户密码的身份验证插件。对于使用经典 MySQL 协议的 MySQL Shell 连接,请指定身份验证插件的名称,例如 caching_sha2_password。对于使用 X 协议的 MySQL Shell 连接,请指定以下选项之一:

    汽车

    让图书馆选择身份验证方法。

    倒退

    让库选择认证方式,但不要使用任何不兼容MySQL 5.7的认证方式。

    FROM_CAPABILITIES

    让库选择身份验证方法,使用服务器实例宣布的功能。

    MySQL41

    使用MySQL 4.1及以后版本支持的质询-应答认证协议,不发送明文密码。mysql_native_password 此选项与使用身份验证插件 的帐户兼容 。

    清楚的

    发送明文密码进行身份验证。仅将此选项用于加密连接。caching_sha2_password 如果存在 SSL 连接,此选项可用于对使用身份验证插件的帐户使用缓存的凭据进行 身份验证。请参阅 将 X 插件与缓存 SHA-2 身份验证插件一起使用

    SHA256_内存

    使用存储在内存中的散列密码进行身份验证。此选项可用于使用缓存的凭据对使用 caching_sha2_password 身份验证插件的帐户进行身份验证,其中存在非 SSL 连接。请参阅 将 X 插件与缓存 SHA-2 身份验证插件一起使用

    对于使用经典 MySQL 协议的 MySQL Shell 连接,指定用户帐户使用的身份验证插件的名称,例如 caching_sha2_password(这是在 MySQL 8.0 中创建的用户帐户的默认值)。MySQL Shell 使用 MySQL 客户端库对这些连接进行客户端身份验证。以下身份验证方法需要额外配置:

    明文密码

    mysql_clear_password 客户端插件是简单 LDAP 身份验证所必需的 。它内置于 MySQL 客户端库中,但出于安全考虑,默认情况下未启用。从 MySQL Shell 8.0.27 开始,当您使用 --auth-method=clear_text_password 连接选项指定它时,MySQL Shell 会启用并使用该插件。这种认证类型只适用于使用 SSL 或套接字的安全连接,因此您必须在使用前配置安全连接。请注意,使用选项 ssl-mode=preferred,不保证 SSL 连接,因此设置了此选项的连接不被视为 SSL 连接。有关详细信息,请参阅 第 4.3.3 节,“使用加密连接”

    authentication_ldap_sasl_client

    authentication_ldap_sasl_client 客户端插件用于基于 SASL 的 LDAP 身份验证,包括 GSSAPI/Kerberos 身份验证 。它没有内置到 MySQL 客户端库中,而是包含在 MySQL 服务器包中。要加载它,您必须使用 --mysql-plugin-dir 选项(可从 MySQL Shell 8.0.27 获得)指定 MySQL 服务器包中插件的路径。

    authentication_kerberos_client

    authentication_kerberos_client 客户端插件用于 Kerberos 身份验证 。它没有内置到 MySQL 客户端库中,而是包含在 MySQL 服务器包中。要加载它,您必须使用 --mysql-plugin-dir 选项(可从 MySQL Shell 8.0.27 获得)指定 MySQL 服务器包中插件的路径。

    --auth-method当该选项用于指定 authentication_ldap_sasl_clientauthentication_kerberos_client插件,并且该--mysql-plugin-dir 选项用于提供插件路径 时,MySQL 8.0.27 支持用于 Kerberos 身份验证的缓存票证授予票证 (TGT) 。要使用缓存的 TGT,请不要在连接选项中指定用户和密码。当您指定这些插件之一并且不指定用户和密码时,MySQL Shell 不会提供系统用户名,不会提示输入密码,也不会尝试使用 Secret Store helper 来检索或存储凭据。

    有关详细信息,请参阅 第 4.3.4 节 “使用 LDAP 和 Kerberos 身份验证”

  • --cluster

    确保目标服务器是 InnoDB 集群的一部分,如果是,则将 cluster全局变量设置为集群对象。

  • --column-type-info

    在SQL模式下,在打印查询返回的结果集之前,打印结果集中每一列的元数据,例如列类型和排序规则。

    列类型作为 MySQL Shell ( Type) 使用的类型和原始数据库 ( DBType) 使用的类型返回。对于使用经典 MySQL 协议的 MySQL Shell 连接, DBType由协议返回,对于 X 协议连接,DBType 从可用信息推断。列长度​​ ( Length) 以字节为单位返回。

  • --compress[={required|preferred|disabled}], -C [{required|preferred|disabled}]

    控制使用此连接在客户端和服务器之间发送的信息的压缩。在 MySQL Shell 8.0.14 到 8.0.19 中,此选项仅适用于经典 MySQL 协议连接,不使用选项requiredpreferreddisabled。在这些版本中,当您指定 时--compress,如果可能会激活压缩。从 MySQL Shell 8.0.20 开始,它也可用于 X 协议连接,您可以选择指定requiredpreferreddisabled。当 --compress从 MySQL Shell 8.0.20 指定 just 时,意思是 --compress=required. 看 第 4.3.6 节,“使用压缩连接”获取有关在所有版本中使用 MySQL Shell 的压缩控制的信息。

  • --connect-timeout=ms

    配置 MySQL Shell 等待多长时间(以毫秒为单位)以建立通过命令行参数指定的全局会话。

  • --credential-store-helper=helper

    用于存储和检索密码的 Secret Store Helper。请参见 第 4.4 节 “可插入密码存储”

  • --database=name, -D name

    要使用的默认架构。这是 的别名 --schema

  • --dba=enableXProtocol

    在与 MySQL 5.7 服务器的连接上启用 X 插件,以便您可以使用 X 协议连接进行后续连接。需要使用经典 MySQL 协议的连接。与默认启用 X 插件的 MySQL 8.0 服务器无关。

  • --dba-log-sql[=0|1|2]

    记录由 AdminAPI 操作(不包括沙箱操作)执行的 SQL 语句。默认情况下,此类语句不会写入 MySQL Shell 应用程序日志文件或作为详细输出发送到控制台,即使设置了 --log-level--verbose选项。该选项的值是0到2范围内的整数。0不记录或显示此类语句,如果不指定该选项,这是默认行为。1 记录由 AdminAPI 操作执行的 SQL 语句, SELECT语句和 SHOW语句(如果您在没有值的情况下在命令行上指定选项,则这是默认设置)。2 完整记录由常规 AdminAPI 操作执行的 SQL 语句,包括 SELECTSHOW语句。有关详细信息,请参阅 第 12 章,MySQL Shell 日志记录和调试

  • --log-sql[=off|error|on|unfiltered]

    将MySQL Shell执行的所有SQL语句记录到MySQL Shell日志文件中,mysqlsh.log

  • --dbpassword[=password]

    在 MySQL Shell 的 8.0.13 版中已弃用。改用 。 --password[=password]

  • --dbuser=user_name

    在 MySQL Shell 的 8.0.13 版中已弃用。改用 。 --user=user_name

  • --execute=command, -e command

    使用当前活动的语言执行命令并退出。此选项与选项互斥 。 --file=file_name

  • --fido-register-factor

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

    mysqlsh --user=user_name --password1 --fido-register-factor=2
    Enter password: (enter factor 1 password)

    要注册无密码身份验证帐户,FIDO 设备是唯一的身份验证,您 --fido-register-factor=2需要提供临时密码。服务器在注册成功后将FIDO认证移至第一因素。

    笔记

    如果您在连接到服务器时未指定密码,则 MySQL Shell 会提示输入密码。使用 FIDO 设备设置无密码身份验证后,使用以下方法之一在建立连接时绕过密码提示:

    • 指定连接选项 --no-password,或 --password=使用空值。

    • 在连接字符串中的用户名后放置一个冒号 (:),例如:mysqlsh user_name:@localhost

    • 出现密码提示时按 Enter。

    MySQL Shell--fido-register-factor 选项的工作方式与mysql 客户端选项相同。有关更多详细信息和说明,请参阅 FIDO 可插入身份验证

  • --file=file_name, -f file_name

    指定要在批处理模式下处理的文件。在此之后指定的任何选项都用作已处理文件的参数。

  • --force

    即使发生错误,也可以在 SQL 和批处理模式下继续处理。

  • --histignore=strings

    指定不添加到 MySQL Shell 历史记录中的字符串。字符串由冒号分隔。匹配不区分大小写,通配符 * 和 ? 可以使用。默认忽略的字符串指定为 *IDENTIFIED*:*PASSWORD*。请参阅第 5.5 节,“代码历史”

  • --host=host_name, -h host_name

    连接到给定主机上的 MySQL 服务器。在 Windows 上,如果您指定--host=.-h .(将主机名作为句点),MySQL Shell 将使用默认命名管道(其名称为 MySQL)或您使用该 --socket选项指定的替代命名管道进行连接。

  • --get-server-public-key

    MySQL Shell 相当于 --get-server-public-key.

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

    重要的

    仅支持经典 MySQL 协议连接。

    请参阅缓存 SHA-2 可插入身份验证

  • --import

    使用 JSON 导入实用程序将 JSON 文档从文件或标准输入导入到 MySQL 服务器集合或关系表。有关说明,请参阅 第 11.2 节,“JSON 导入实用程序”

  • --interactive[=full], -i

    在批处理模式下模拟交互模式。

  • --js, --javascript

    以 JavaScript 模式启动。

  • --json[={off|pretty|raw}]

    控制来自此会话的 MySQL Shell 输出的 JSON 包装。此选项旨在将 MySQL Shell 与其他程序连接起来,例如作为测试的一部分。要更改查询结果输出以使用 JSON 格式,请参阅--result-format

    当该--json选项没有值或值的值时pretty,输出将生成相当打印的JSON。值为 时 raw,输出以原始 JSON 格式生成。在任何这些情况下, --result-format选项及其别名以及 resultFormatMySQL Shell 配置选项的值都将被忽略。值为 时,不进行 JSON 包装,结果集按选项或配置选项 off指定的格式正常输出 。--result-formatresultFormat

  • --log-file=path

    更改 mysqlsh.log此 MySQL Shell 实例的 MySQL Shell 应用程序日志文件的位置。应用程序日志文件的默认位置是用户配置路径,默认 %APPDATA%\MySQL\mysqlsh\位于 Windows 或 ~/.mysqlsh/Unix 上。您可以通过定义环境变量来覆盖所有 MySQL Shell 实例的用户配置路径 MYSQLSH_USER_CONFIG_HOME。该 --log-file选项适用于单个 MySQL Shell 实例,这意味着不同的实例可以写入不同的位置。

  • --log-level=N

    更改 MySQL Shell 应用程序日志文件的日志记录级别mysqlsh.log,或禁用该文件的日志记录。该选项需要一个值,该值可以是 1 到 8 范围内的整数,也可以是 noneinternalerrorwarninginfodebugdebug2或之一debug3。指定 1 或none禁用记录到应用程序日志文件。info如果您不指定此选项,则级别 5 ( ) 是默认级别。请参阅 第 12 章,MySQL Shell 日志记录和调试

  • -ma

    在 MySQL Shell 的 8.0.13 版中已弃用。自动尝试使用 X 协议创建会话连接,如果 X 协议不可用,则回退到经典 MySQL 协议。

  • --mysql, --mc

    将启动时创建的全局会话设置为使用经典的 MySQL 协议连接。带有两个连字符的--mc 选项替换了 -mcMySQL Shell 8.0.13 中以前的单个连字符选项。

  • --mysql-plugin-dir=path

    通过覆盖设置的值来设置客户端身份验证插件的非持久路径 shell.options.mysqlPluginDir。客户端插件在 MySQL 服务器包中提供,可以相对于 MySQL 基本目录(basedir系统变量的值)定位。例如:

    • C:\program files\mysql\mysql Server 8.0\lib\plugin在 Windows 主机类型上

    • /usr/local/mysql/lib/plugin在 Linux 主机类型上

    有关服务器附带的客户端身份验证插件的列表,请参阅 可用的身份验证插件

  • --mysqlx, --mx

    将启动时创建的全局会话设置为使用 X 协议连接。带有两个连字符的--mx选项替换了 -mxMySQL Shell 8.0.13 中以前的单个连字符选项。

  • --name-cache

    启用基于活动默认模式的表名自动加载。

  • --no-name-cache, -A

    基于活动的默认架构和 DevAPI db对象禁用自动完成的表名加载。用于\rehash 手动重新加载名称信息。

  • --no-password

    当连接到服务器时,如果用户有一个不安全且不推荐的无密码帐户,或者如果正在使用 socket peer-credential 身份验证(对于 Unix socket 连接),则必须使用 --no-password明确指定不提供密码并且不需要密码提示。

  • --no-wizard, -nw

    dba.configureInstance()禁用创建连接、 等操作提供的交互式向导 Cluster.rebootClusterFromCompleteOutage() 。当您想要编写 MySQL Shell 脚本并且不显示交互式提示时,请使用此选项。有关详细信息,请参阅 第 5.6 节“批处理代码执行”第 5.8 节“API 命令行集成”

  • --pager=name

    MySQL Shell 使用的外部分页工具,用于显示在 SQL 模式下执行的语句和其他选定命令(如联机帮助)的文本输出。如果不设置寻呼机,PAGER 则使用环境变量指定的寻呼机。请参见 第 4.6 节 “使用寻呼机”

  • --passwords-from-stdin

    从标准输入而不是终端读取密码。此选项不会影响任何其他密码行为,例如密码提示。

  • --password[=password], -ppassword

    连接到服务器时使用的密码。连接到 MySQL Shell 所接受的最大密码长度为 128 个字符。

    • --password=password ( ) 的值提供用于连接的密码。对于长格式 ,您必须在选项及其值之间使用等号而不是空格。对于缩写形式,选项与其值之间不能有空格。如果在任何一种情况下都使用空格,则该值不会被解释为密码,而可能被解释为另一个连接参数。 -ppassword--password=-p

      在命令行上指定密码应该被认为是不安全的。请参阅 密码安全的最终用户指南。您可以使用选项文件来避免在命令行中提供密码。

    • --password没有值和等号,或-p没有值,请求密码提示。

    • --password=具有空值与 具有相同的效果 --no-password,它指定用户在没有密码的情况下进行连接。当连接到服务器时,如果用户有一个不安全且不推荐的无密码帐户,或者如果正在使用套接字对等凭据身份验证(对于 Unix 套接字连接),则必须使用这些方法之一来显式指定不提供密码,不需要密码提示。

  • --password1[=password]

    --password1, --password2--password3是用于需要多重身份验证的帐户的密码。您最多可以提供三个密码。选项与选项的工作方式相同 --password,并被 --password1视为等同于该选项。您可以在命令行上的选项后面指定一个密码值(这是不安全的),或者如果在没有密码值的情况下给出选项,MySQL Shell 会依次提示用户输入每个密码。这些选项可从 MySQL Shell 8.0.28 获得,它们仅支持使用命令行参数建立的经典 MySQL 协议连接。

  • --password2[=password]

    需要多重身份验证的帐户的第二种身份验证方法的密码。请参阅 --password1选项的说明。

  • --password3[=password]

    需要多重身份验证的帐户的第三种身份验证方法的密码。请参阅 --password1选项的说明。

  • --port=port_num, -P port_num

    用于连接的 TCP/IP 端口号。默认为端口 33060。

  • --py, --python

    以 Python 模式启动。

  • --pyc -c

    执行 Python 命令并退出。在此之后指定的任何选项都被视为已处理命令的参数。

  • --pym

    在 MySQL Shell 的 Python 模式下将指定的 Python 模块作为脚本执行。 --pym工作方式与 Python 的-m命令行选项相同。此选项可从 MySQL Shell 8.0.22 获得。

  • --quiet-start[=1|2]

    开始时不打印介绍性信息。MySQL Shell 通常会打印有关产品的信息、有关会话的信息(例如默认架构和连接 ID)、警告消息以及在启动和连接期间返回的任何错误。当您指定 --quiet-start没有值或值为 1 时,不打印有关 MySQL Shell 产品的信息,但会打印会话信息、警告和错误。值为 2 时,仅打印错误。

  • --recreate-schema

    删除并重新创建在连接选项中指定的架构,作为类似 URI 的连接字符串的一部分或使用 --schema--database-D选项。如果模式存在,则将其删除。

  • --redirect-primary

    确保目标服务器是 InnoDB Cluster 或 InnoDB ReplicaSet 的一部分,如果它不是主服务器,则找到主服务器并连接到它。如果在使用此选项时出现以下任何情况,则 MySQL Shell 将退出并出错:

    • 没有指定实例

    • 在 InnoDB 集群上,组复制不活跃

    • InnoDB Cluster 元数据不存在

    • 没有法定人数

  • --replicaset

    确保目标服务器属于 InnoDB ReplicaSet,如果是,则使用 rsInnoDB ReplicaSet 填充全局变量。然后,您可以使用全局变量管理 InnoDB ReplicaSet rs,例如通过发出 rs.status().

  • --redirect-secondary

    确保目标服务器是单主 InnoDB Cluster 或 InnoDB ReplicaSet 的一部分,如果它不是辅助服务器,则找到辅助服务器并连接到它。如果在使用此选项时出现以下任何情况,则 MySQL Shell 将退出并出错:

    • 在 InnoDB 集群上,组复制不活跃

    • InnoDB Cluster 元数据不存在

    • 没有法定人数

    • 集群不是单主集群,而是以多主模式运行

    • 没有可用的辅助服务器,例如因为只有一个服务器实例

  • --result-format={table|tabbed|vertical|json|json/pretty|ndjson|json/raw|json/array}

    resultFormat 为此会话 设置 MySQL Shell 配置选项的值。格式如下:

    桌子

    交互模式的默认值,除非在配置文件中为配置选项永久设置了另一个值 resultFormat,在这种情况下应用默认值。--table 也可以使用别名 。

    选项卡式

    批处理模式的默认值,除非在配置文件中为配置选项永久设置了另一个值 resultFormat,在这种情况下应用默认值。--tabbed 也可以使用别名 。

    垂直的

    产生相当于 \GSQL 查询终止符的输出。也可以使用 或 --vertical别名 。-E

    json 或 json/漂亮

    生成漂亮的 JSON。

    ndjson 或 json/raw

    生成由换行符分隔的原始 JSON。

    json/数组

    生成包装在 JSON 数组中的原始 JSON。

    如果--json命令行选项用于激活会话输出的 JSON 包装,则该--result-format 选项及其别名和 resultFormat配置选项的值将被忽略。

  • --save-passwords={always|prompt|never}

    控制密码是否自动存储在秘密存储中。always意味着密码总是被存储,除非它们已经在商店中或服务器 URL 被过滤器排除。never 意味着永远不会存储密码。prompt,这是默认设置,表示询问用户是否存储密码。请参见 第 4.4 节 “可插入密码存储”

  • --schema=name, -D name

    要使用的默认模式。

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

    MySQL Shell 相当于 --server-public-key-path.

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

    重要的

    仅支持经典 MySQL 协议连接。

    请参阅caching_sha2_password插件 缓存 SHA-2 可插入身份验证

  • --show-warnings={true|false}

    当指定 true 时,这是默认值,在 SQL 模式下,MySQL Shell 在每个 SQL 语句之后显示警告(如果有的话)。如果指定 false,则不显示警告。

  • --socket[=path], -S [path]

    在 Unix 上,当指定路径时,该路径是用于连接的 Unix 套接字文件的名称。如果您指定--socket没有值和等号,或者-S没有值,则使用适当协议的默认 Unix 套接字文件。

    在 Windows 上,路径是用于连接的命名管道的名称。管道名称不区分大小写。在 Windows 上,您必须指定路径,并且该 --socket选项仅适用于经典 MySQL 协议会话。

    如果指定端口或主机名而不是localhostUnix 或 Windows 上的句点 (.),则无法指定套接字。

  • --sql

    以 SQL 模式启动,如果未将其指定为连接信息的一部分,则自动检测要使用的协议。当未指定要使用的协议时,默认为 X 协议连接,回退到经典的 MySQL 协议连接。要强制连接使用特定协议,请参阅--sqlx--sqlc选项。或者,指定一个协议以用作类似 URI 的连接字符串的一部分或使用该 --port选项。有关详细信息,请参阅 第 4.3 节,“MySQL Shell 连接”MySQL Shell 端口

  • --sqlc

    以 SQL 模式启动,强制连接使用经典的 MySQL 协议,例如在不支持 X 协议的服务器上使用 MySQL Shell。如果你没有指定端口作为连接的一部分,当你提供这个选项时,MySQL Shell 使用默认的经典 MySQL 协议端口,通常是 3306。你连接到的端口必须支持经典 MySQL 协议,所以例如如果连接您指定使用 X 协议默认端口 33060,连接失败并出现错误。有关详细信息,请参阅 第 4.3 节,“MySQL Shell 连接”MySQL Shell 端口

  • --sqlx

    以 SQL 模式启动,强制连接使用 X 协议。如果您没有将端口指定为连接的一部分,则当您提供此选项时,MySQL Shell 使用默认的 X 协议端口,通常为 33060。您要连接的端口必须支持 X 协议,例如,如果您指定的连接使用经典的MySQL协议默认端口3306,连接失败报错。有关详细信息,请参阅 第 4.3 节,“MySQL Shell 连接”MySQL Shell 端口

  • --ssh=str

    创建一个 SSH 隧道,提供到 MySQL 服务器实例的加密连接。以 格式提供用于连接到 SSH 服务器的 URI [user@]host[:port],例如:

    --ssh root@198.51.100.4:2222

    使用此选项时,还必须指定 --user--host--port选项或 URI,以连接到 MySQL 服务器实例。有关来自 MySQL Shell 的 SSH 隧道连接的信息,请参阅 第 4.3.5 节,“使用 SSH 隧道”

  • --ssh-config-file=path

    指定用于连接 SSH 服务器的 SSH 配置文件的路径。ssh.configFile如果未指定此选项,则可以使用 MySQL Shell 配置选项将自定义文件设置为默认文件。如果ssh.configFile没有设置,默认是标准的 SSH 配置文件 ~/.ssh/config。如果您指定 --ssh-config-file一个空值, ssh.configFile则忽略指定的默认文件,并 ~/.ssh/config使用该文件代替。

  • --ssh-identity-file=path

    指定用于连接到 SSH 服务器的身份文件的路径。~/.ssh/id_rsa如果未指定此选项,则默认为 SSH 配置文件夹 ( ) 中的标准私钥文件。

  • --ssl*

    以 开头的选项 --ssl指定是否使用 SSL 连接到服务器并指示在哪里可以找到 SSL 密钥和证书。mysqlsh SSL 选项的功能与 MySQL 服务器的 SSL 选项相同,有关更多信息,请参阅 加密连接的 命令选项。

    mysqlsh接受这些 SSL 选项: --ssl-mode, --ssl-ca, --ssl-capath, --ssl-cert, --ssl-cipher, --ssl-crl, --ssl-crlpath, --ssl-key, --tls-version

  • --syslog

    将您在 MySQL Shell 的 SQL 模式下发出的 SQL 语句发送到操作系统的系统日志记录工具(syslog在 Unix 上,或 Windows 事件日志)。SQL 语句的系统日志记录仅在 MySQL Shell 以交互模式启动时发生,因此可以正常启动或使用 --interactive选项启动。--execute如果在启动时使用或 --file选项以mysqlsh批处理模式运行,则不会发生 。有关详细信息,请参阅 第 12.3 节,“用户 SQL 语句的系统日志记录”

  • --tabbed

    在交互模式下以制表符分隔格式显示结果。该模式的默认值为表格格式。该选项是该选项的别名 --result-format=tabbed

  • --table

    在批处理模式下以表格格式显示结果。该模式的默认值是制表符分隔格式。该选项是该选项的别名 --result-format=table

  • --uri=str

    在启动时创建一个连接,在一个类似 URI 的字符串中指定连接选项,如 使用类似 URI 的字符串或键值对连接到服务器中所述。

  • --user=user_name, -u user_name

    连接到服务器时使用的 MySQL 用户名。

  • --verbose[=0|1|2|3|4]

    激活到控制台的详细输出并指定详细程度。该值为 0 到 4 范围内的整数。0 不显示任何消息,这是您未指定该选项时的默认详细设置。1 显示错误、警告和信息性消息(如果您在没有值的命令行上指定选项,则这是默认设置)。2、3 和 4 添加更高级别的调试消息。有关详细信息,请参阅 第 12 章,MySQL Shell 日志记录和调试

  • --version, -V

    显示 MySQL Shell 的版本并退出。

  • --vertical, -E

    垂直显示结果,就像将 \G终止符用于 SQL 查询时一样。该选项是该选项的别名 --result-format=vertical