4.6.6 mysql_config_editor-MySQL 配置 Util

mysql_config_editorUtil 使您可以将身份验证凭据存储在名为.mylogin.cnf的模糊登录路径文件中。文件位置在 Windows 上是%APPDATA%\MySQL目录,在非 Windows 系统上是当前用户的主目录。稍后,MySQLClient 端程序可以读取该文件,以获得用于连接到 MySQL Server 的身份验证凭据。

.mylogin.cnf登录路径文件的清晰格式由选项组组成,类似于其他选项文件。 .mylogin.cnf中的每个选项组称为“登录路径”,该组仅允许某些选项:hostuserpasswordportsocket。将登录路径选项组视为一组选项,用于指定要连接到哪个 MySQL 服务器以及要作为身份验证的帐户。这是一个清晰的示例:

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

当您调用 Client 端程序以连接到服务器时,Client 端将.mylogin.cnf与其他选项文件结合使用。它的优先级高于其他选项文件,但低于 Client 端命令行上显式指定的选项。有关使用选项文件的 Sequences 的信息,请参见第 4.2.2.2 节“使用选项文件”

要指定备用登录路径文件名,请设置MYSQL_TEST_LOGIN_FILE环境变量。 mysql_config_editor,标准 MySQLClient 端(mysqlmysqladmin等)和 mysql-test-run.pl 测试 Util 均可识别此变量。

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

shell> mysql

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

shell> mysql --login-path=mypath

mysqlClient 端从其他选项文件读取[client][mysql],从登录路径文件读取[client][mysql][mypath]

mysql_config_editor.mylogin.cnf文件进行了模糊处理,因此无法将其读取为明文,并且在 Client 端程序未对其进行模糊处理时,其内容仅在内存中使用。这样,可以将密码以非明文格式存储在文件中,并在以后使用,而无需在命令行或环境变量中公开。 mysql_config_editor提供了print命令来显示登录路径文件的内容,但是即使在这种情况下,密码值也会被屏蔽,以便永远不会以其他用户可以看到的方式出现。

mysql_config_editor所使用的混淆处理可防止密码以明文形式出现在.mylogin.cnf中,并通过防止无意中暴露密码来提供安全性措施。例如,如果您在屏幕上显示一个普通的,未混淆的my.cnf选项文件,则任何人都可以看到它包含的所有密码。对于.mylogin.cnf,那是不正确的。但是使用的混淆不会阻止坚定的攻击者,因此您不应认为它是坚不可摧的。可以在您的计算机上获得系统 Management 特权以访问您的文件的用户可以不费吹灰之力使.mylogin.cnf文件模糊。

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

像这样调用mysql_config_editor

shell> mysql_config_editor [program_options] command [command_options]

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

命令参数如下:

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

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

第一个命令行显示一条常规的mysql_config_editor帮助消息,而忽略set命令。第二个命令行显示特定于set命令的帮助消息。

假设您要构建一个定义默认连接参数的client登录路径,以及一个用于连接到主机remote.example.com的 MySQL 服务器的名为remote的附加登录路径。您要登录如下:

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

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_editor默认使用client登录路径,因此可以在不更改其效果的情况下从第一个命令中省略--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=name显示命名的登录路径,则print命令默认会显示client登录路径(如果有)。

如前面的示例所示,登录路径文件可以包含多个登录路径。这样,mysql_config_editor可以轻松设置多个“个性”以连接到不同的 MySQL 服务器,或使用不同的帐户连接到给定的服务器。稍后调用 Client 端程序时,可以使用--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按照创建 Sequences 将登录路径添加到登录路径文件中,因此您应该首先创建更通用的登录路径,然后再创建更特定的路径。如果需要在文件内移动登录路径,可以将其删除,然后重新创建以将其添加到末尾。例如,client登录路径更通用,因为所有 Client 端程序都将读取它,而mysqldump登录路径仅由mysqldump读取。稍后指定的选项将覆盖先前指定的选项,因此将登录路径设置为clientmysqldump可使mysqldump特定的选项覆盖client选项。

当您将set命令和mysql_config_editor一起使用来创建登录路径时,无需指定所有可能的选项值(主机名,用户名,密码,端口,套接字)。仅将给定的那些值写入路径。当您调用 Client 端路径以连接到 MySQL 服务器时,可以在其他选项文件中或在命令行中指定以后需要的所有缺失值。命令行上指定的任何选项都将覆盖登录路径文件或其他选项文件中指定的选项。例如,如果remote登录路径中的凭据也适用于主机remote2.example.com,请按以下方式连接到该主机上的服务器:

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

mysql_config_editor 常规选项

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

table4.21 mysql_config_editor 常规选项

Option Name Description
--debug 编写调试日志
--help 显示帮助信息并退出
--verbose Verbose mode
--version 显示版本信息并退出

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

要查看特定于命令的帮助消息,请按以下方式调用mysql_config_editor,其中* command *是help以外的命令:

shell> mysql_config_editor command --help

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

仅当使用WITH_DEBUG构建 MySQL 时,此选项才可用。使用此选项不是构建 Oracle 提供的 MySQL 发行版二进制文件。

详细模式。打印有关程序功能的更多信息。如果操作无法达到预期效果,则此选项可能有助于诊断问题。

显示版本信息并退出。

mysql_config_editor 命令和命令特定的选项

本节描述了允许的mysql_config_editor命令,以及每个命令中在命令行中命令名称之后允许的特定于命令的选项。

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

mysql_config_editor支持以下命令:

显示一般帮助消息并退出。此命令没有以下选项。

要查看特定于命令的帮助消息,请按以下方式调用mysql_config_editor,其中* command *是help以外的命令:

shell> mysql_config_editor command --help

以清晰的形式打印登录路径文件的内容,但密码显示为*****除外。

如果未命名登录路径,则默认登录路径名称为client。如果同时提供--all--login-path,则--all优先。

print命令允许在命令名称后使用以下选项:

显示有关print命令的帮助消息并退出。

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

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

打印命名登录路径的内容。

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

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

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

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

shell> mysql_config_editor remove --login-path=mypath

remove命令允许在命令名称后使用以下选项:

显示有关remove命令的帮助消息并退出。

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

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

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

从登录路径中删除密码。

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

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

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

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

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

reset命令允许在命令名称后使用以下选项:

显示有关reset命令的帮助消息并退出。

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

将登录路径写入登录路径文件。

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

set命令允许在命令名称后使用以下选项:

显示有关set命令的帮助消息并退出。

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

写入登录路径的主机名。

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

提示 Importing 要写入登录路径的密码。 mysql_config_editor显示提示后,键入密码,然后按 Enter。为了防止其他用户看到密码,mysql_config_editor不会回显密码。

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

password =

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

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

写入登录路径的用户名。

如果命令尝试覆盖现有的登录路径,则警告并提示用户进行确认。默认情况下启用此选项。使用--skip-warn将其禁用。

首页