MySQL Shell 8.4  /  ...  /  使用独立参数连接

4.3.1 使用独立参数连接

除了使用连接字符串指定连接参数外,还可以通过为每个值使用单独的命令参数,在启动 MySQL Shell 时定义连接数据。有关 MySQL Shell 命令选项的完整参考,请参见 第 A.1 节 “mysqlsh — MySQL Shell”

使用以下与连接相关的参数

这些命令选项的行为类似于 mysql 客户端使用的选项,如 使用命令选项连接到 MySQL 服务器 中所述。

使用以下命令选项来控制是否以及如何为连接提供密码

  • --password=password (-ppassword) 带有一个值,用于提供要用于连接的密码(最多 128 个字符)。对于长格式 --password=,必须在选项及其值之间使用等号而不是空格。对于短格式 -p,选项与其值之间不能有空格。如果在这两种情况下都使用了空格,则该值不会被解释为密码,而可能被解释为另一个连接参数。

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

  • --password 不带值且没有等号,或 -p 不带值,则会请求密码提示。

  • --no-password--password= 带有一个空值,表示用户在没有密码的情况下进行连接。当连接到服务器时,如果用户拥有一个没有密码的帐户(这是不安全的,不建议这样做),或者如果正在使用套接字对等凭据身份验证(对于 Unix 套接字连接),则必须使用其中一种方法来明确指定不提供密码,并且不需要密码提示。

  • --password1--password2--password3 是需要多因素身份验证的帐户的密码。最多可以提供三个密码。这些选项的工作方式与 --password 选项相同,并且 --password1 被视为等效于该选项。

当以多种方式指定参数时,例如同时使用 --uri 选项和指定诸如 --user 等单个参数,则适用以下规则

  • 如果一个参数被指定了多次,则使用最后一次出现的参数值。

  • 如果同时指定了单个连接参数和 --uri,则将 --uri 的值作为基础,并使用单个参数的值覆盖基础 URI 类字符串中的特定组件。

    例如,要覆盖 URI 类字符串中的 user

    $> mysqlsh --uri user@localhost:33065 --user otheruser

如果请求这些功能并且服务器支持,则可以加密从 MySQL Shell 到服务器的连接,也可以压缩这些连接。有关建立加密连接的说明,请参见 第 4.3.4 节 “使用加密连接”。有关建立压缩连接的说明,请参见 第 4.3.7 节 “使用压缩连接”

以下示例显示了如何使用命令参数指定连接。尝试使用端口 33065 上的指定用户建立 X 协议连接

$> mysqlsh --mysqlx -u user -h localhost -P 33065

尝试使用指定用户建立经典 MySQL 协议连接,并请求对连接进行压缩

$> mysqlsh --mysql -u user -h localhost -C