14、MySQL 8.0参考手册 4.6.7 mysql_config_editor - MySQL配置工具

mysql_config_editor实用程序,可以存储在一个名为加密的登录路径文件认证证书.mylogin.cnf文件位置是%APPDATA%\MySQLWindows上的目录以及非Windows系统上当前用户的主目录。MySQL客户端程序可以稍后阅读该文件,以获取用于连接到MySQL服务器的认证凭证。

.mylogin.cnf 登录路径文件 的未加密格式由选项组组成,与其他选项文件类似。每个选项组中 .mylogin.cnf被称为“ 登录路径, ”这是一组只允许特定的选项:hostuserpasswordport和 socket将登录路径选项组想象为一组选项,指定要连接到哪个MySQL服务器以及要认证哪个帐户。这是一个未加密的例子:

[client]
user = mydefaultname
password = mydefaultpass
host = 127.0.0.1
[mypath]
user = myothername
password = myotherpass
host = localhost

当您调用客户端程序连接到服务器时,客户端将.mylogin.cnf与其他选项文件结合使用。其优先级高于其他选项文件,但低于在客户机命令行上明确指定的选项。有关使用选项文件的顺序的信息,请参见第4.2.6节“使用选项文件”

要指定备用登录路径文件名,请设置 MYSQL_TEST_LOGIN_FILE环境变量。这个变量被 mysql_config_editor,标准MySQL客户端(mysql, mysqladmin等等)和mysql-test-run.pl测试工具所 识别

程序使用登录路径文件中的组,如下所示:

  • client默认情况下, mysql_config_editor登录路径上运行, 如果您指定no 选项来明确指明要使用的登录路径。 --login-path=name

  • 如果没有--login-path 选项,客户端程序将从其他选项文件中读取的登录路径文件中读取相同的选项组。考虑这个命令:

    shell> mysql

    默认情况下,mysql客户端 从其他选项文件中读取 [client][mysql]组,所以它也从登录路径文件中读取它们。

  • 使用--login-path选项,客户端程序还会从登录路径文件中读取指定的登录路径。从其他选项文件读取的选项组保持不变。考虑这个命令:

    shell> mysql --login-path=mypath

    MySQL的客户端读取 [client][mysql] 其他选项的文件,并[client], [mysql]以及[mypath] 从登录路径文件。

  • 即使使用该--no-defaults选项,客户端程序也会读取登录路径文件 这允许以比在命令行更安全的方式指定密码,即使 --no-defaults存在。

mysql_config_editor.mylogin.cnf文件进行加密, 使其不能被读为明文,并且客户端程序解密时的内容仅在内存中使用。通过这种方式,密码可以以非明文格式存储在文件中,以后可以不必在命令行或环境变量中公开。mysql_config_editor提供了一个print用于显示登录路径文件内容的 命令,但即使在这种情况下,密码值也会被屏蔽,以免其他用户看到它们。

mysql_config_editor 使用的加密 可以防止密码.mylogin.cnf以明文形式出现, 并通过防止无意中泄露密码来提供安全措施。例如,如果您my.cnf在屏幕上显示常规未加密的 选项文件,则其中包含的任何密码都可供任何人查看。有了 .mylogin.cnf,这是不正确的。但使用的加密技术不会阻止确定的攻击者,您不应该认为它是不可破解的。可以在您的计算机上获得系统管理权限以访问您的文件的用户可以.mylogin.cnf通过一些努力来解密文件。

登录路径文件必须对当前用户可读可写,并且其他用户无法访问。否则, mysql_config_editor会忽略它,客户端程序也不会使用它。

像这样 调用mysql_config_editor

shell> mysql_config_editor [program_options] command [command_options]

如果登录路径文件不存在, mysql_config_editor会创建它。

命令参数如下:

  • program_options由一般的mysql_config_editor选项组成。

  • command指示要在.mylogin.cnf登录路径文件上执行的操作。例如,set向文件写入登录路径,remove删除登录路径并print显示登录路径内容。

  • command_options 指示特定于该命令的任何附加选项,例如登录路径名称和登录路径中使用的值。

命令名称在程序参数集中的位置很重要。例如,这些命令行具有相同的参数,但会产生不同的结果:

shell> mysql_config_editor --help set
shell> mysql_config_editor set --help

第一个命令行显示一个通用的 mysql_config_editor帮助消息,并忽略该set命令。第二个命令行显示特定于该set 命令的帮助消息

假设你想要建立一个client 登录路径来定义你的默认连接参数,并且命名一个额外的登录路径remote用于连接主机的MySQL服务器 remote.example.com您想要如下登录:

  • 默认情况下,使用用户名和密码为localuser和 的本地服务器localpass

  • 使用用户名和密码为remoteuser和 的远程服务器 remotepass

要在.mylogin.cnf文件中设置登录路径 ,请使用以下 set命令。在一行中输入每个命令,并在提示时输入适当的密码:

shell> mysql_config_editor set --login-path=client
         --host=localhost --user=localuser --password
Enter password: enter password "localpass" here
shell> mysql_config_editor set --login-path=remote
         --host=remote.example.com --user=remoteuser --password
Enter password: enter password "remotepass" here

mysql_config_editorclient默认使用 登录路径,因此--login-path=client可以在不改变其效果的情况下从第一个命令中省略该 选项。

要查看mysql_config_editor写入 .mylogin.cnf文件的内容,请使用以下 print命令:

shell> mysql_config_editor print --all
[client]
user = localuser
password = *****
host = localhost
[remote]
user = remoteuser
password = *****
host = remote.example.com

print命令将每个登录路径显示为一组以行开头的行,该组标题指示方括号中的登录路径名,后跟登录路径的选项值。密码值被屏蔽并且不显示为明文。

如果您未指定--all显示所有登录路径或 显示指定的登录路径,则该命令默认显示登录路径(如果有)。 --login-path=nameprintclient

如上例所示,登录路径文件可以包含多个登录路径。通过这种方式, mysql_config_editor可以很容易地设置多个“ 个性 ”来连接到不同的MySQL服务器,或者使用不同的帐户连接到给定的服务器。--login-path当您调用客户端程序时,可以使用该选项稍后使用名称选择这些中的任何一个。例如,要连接到远程服务器,请使用以下命令:

shell> mysql --login-path=remote

在这里,MySQL的读取 [client][mysql] 其他选项的文件选项组,和 [client][mysql]和 [remote]从登录路径文件组。

要连接到本地服务器,请使用以下命令:

shell> mysql --login-path=client

因为默认情况下,mysql读取 clientmysql登录路径,所以--login-path在这种情况下,该 选项不会添加任何内容。该命令与此相同:

shell> mysql

从登录路径文件读取的选项优先于从其他选项文件读取的选项。从稍后出现在登录路径文件中的登录路径组中读取的选项优先于从文件中先前出现的组读取的选项。

mysql_config_editor按照创建它们的顺序将登录路径添加到登录路径文件中,因此您应该稍后创建更多通用登录路径的第一个和更具体的路径。如果您需要在文件中移动登录路径,则可以将其删除,然后重新创建它以将其添加到最后。例如, client登录路径更为通用,因为它可以被所有客户端程序读取,而 mysqldump登录路径只能通过 mysqldump读取 稍后指定的选项将覆盖之前指定的选项,因此按照顺序放置登录路径clientmysqldump 可以启用 mysqldump特定的选项来覆盖client选项。

当您使用set带有mysql_config_editor命令 创建登录路径时,不需要指定所有可能的选项值(主机名,用户名,密码,端口,套接字)。只有给出的值才写入路径。当您调用客户端路径连接到MySQL服务器时,可以在其他选项文件或命令行中指定稍后需要的任何缺失值。在命令行中指定的任何选项将覆盖登录路径文件或其他选项文件中指定的选项。例如,如果remote登录路径中的凭证也适用于主机remote2.example.com,请连接到该主机上的服务器,如下所示:

shell> mysql --login-path=remote --host=remote2.example.com

mysql_config_editor常规选项

mysql_config_editor支持以下常规选项,它们可以在命令行上命名的任何命令之前使用。有关命令特定选项的说明,请参阅mysql_config_editor命令和命令特定的选项

表4.18 mysql_config_editor常规选项

格式 描述
--debug 编写调试日志
- 帮帮我 显示帮助信息并退出
--verbose 详细模式
- 版 显示版本信息并退出

  • --help, -?

    显示一般帮助信息并退出。

    要查看特定于命令的帮助消息,请按如下所示调用 mysql_config_editor,其中 command是以下命令 help

    shell> mysql_config_editor command --help
  • --debug[=debug_options], -# debug_options

    编写一个调试日志。一个典型的 debug_options字符串是 默认是 。 d:t:o,file_named:t:o,/tmp/mysql_config_editor.trace

  • --verbose, -v

    详细模式。打印关于该程序的更多信息。如果操作没有您期望的效果,此选项可能有助于诊断问题。

  • --version, -V

    显示版本信息并退出。

mysql_config_editor命令和特定于命令的选项

本节描述了允许的mysql_config_editor命令,并为每个命令描述 了命令行中命令名称后面允许使用的命令特定选项。

另外,mysql_config_editor支持可以在任何命令之前使用的通用选项。有关这些选项的说明,请参阅 mysql_config_editor常规选项

mysql_config_editor支持这些命令:

  • help

    显示一般帮助信息并退出。该命令不采用以下选项。

    要查看特定于命令的帮助消息,请按如下所示调用 mysql_config_editor,其中 command是以下命令 help

    shell> mysql_config_editor command --help
  • print [options]

    以未加密的形式打印登录路径文件的内容,但密码显示为 *****

    默认的登录路径名称是client如果没有命名登录路径。如果两个--all和 --login-path给出, --all优先。

    print命令在命令名称后面允许这些选项:

    • --help, -?

      显示该print 命令的帮助信息并退出。

      要查看常规帮助消息,请使用 mysql_config_editor --help

    • --all

      打印登录路径文件中所有登录路径的内容。

    • --login-path=name, -G name

      打印指定登录路径的内容。

  • remove [options]

    从登录路径文件中删除登录路径,或者通过从中删除选项来修改登录路径。

    该命令从登录路径只删除选项,如与被指定--host, --password--port, --socket,和--user 选项。如果没有给出这些选项,则 remove删除整个登录路径。例如,该命令只user 从mypath登录路径中删除选项,而不是整个mypath登录路径:

    shell> mysql_config_editor remove --login-path=mypath --user

    该命令删除整个mypath 登录路径:

    shell> mysql_config_editor remove --login-path=mypath

    remove命令在命令名称后面允许这些选项:

    • --help, -?

      显示该remove 命令的帮助信息并退出。

      要查看常规帮助消息,请使用 mysql_config_editor --help

    • --host, -h

      从登录路径中删除主机名。

    • --login-path=name, -G name

      要删除或修改的登录路径。client如果未提供此选项,则默认登录路径名称为

    • --password, -p

      从登录路径中删除密码。

    • --port, -P

      从登录路径中删除TCP / IP端口号。

    • --socket, -S

      从登录路径中删除Unix套接字文件名。

    • --user, -u

      从登录路径中删除用户名。

    • --warn, -w

      如果该命令尝试删除默认登录路径(client)并且--login-path=client未指定, 警告并提示用户确认该选项默认启用; 使用 --skip-warn禁用它。

  • reset [options]

    清空登录路径文件的内容。

    reset命令在命令名称后面允许这些选项:

    • --help, -?

      显示该reset 命令的帮助信息并退出。

      要查看常规帮助消息,请使用 mysql_config_editor --help

  • set [options]

    编写登录路径文件的登录路径。

    此命令写入登录路径作为被指定的唯一的这样的选项--host, --password--port, --socket,和--user 选项。如果没有给出这些选项,则 mysql_config_editor将登录路径写为空组。

    set命令在命令名称后面允许这些选项:

    • --help, -?

      显示该set 命令的帮助信息并退出。

      要查看常规帮助消息,请使用 mysql_config_editor --help

    • --host=host_name, -h host_name

      要写入登录路径的主机名。

    • --login-path=name, -G name

      要创建的登录路径。client如果未提供此选项,则默认登录路径名称为 

    • --password, -p

      提示输入密码以写入登录路径。在 mysql_config_editor显示提示后,输入密码并按Enter键。为了防止其他用户看到密码, mysql_config_editor不会回显它。

      要指定空密码,请在密码提示处按Enter键。写入登录路径文件的结果登录路径将包含如下所示的行:

      password =
    • --port=port_num, -P port_num

      要写入登录路径的TCP / IP端口号。

    • --socket=file_name, -S file_name

      要写入登录路径的Unix套接字文件名。

    • --user=user_name, -u user_name

      要写入登录路径的用户名。

    • --warn, -w

      如果该命令尝试覆盖现有的登录路径,则警告并提示用户确认。该选项默认启用; 使用 --skip-warn禁用它。

    • 本文由学什么技术好网独家翻译

你可能感兴趣的:(mysql8.0)