该mysql_config_editor实用程序,可以存储在一个名为加密的登录路径文件认证证书.mylogin.cnf
。文件位置是%APPDATA%\MySQL
Windows上的目录以及非Windows系统上当前用户的主目录。MySQL客户端程序可以稍后阅读该文件,以获取用于连接到MySQL服务器的认证凭证。
.mylogin.cnf
登录路径文件 的未加密格式由选项组组成,与其他选项文件类似。每个选项组中 .mylogin.cnf
被称为“ 登录路径, ”这是一组只允许特定的选项:host
,user
,password
,port
和 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=
name
print
client
如上例所示,登录路径文件可以包含多个登录路径。通过这种方式, mysql_config_editor可以很容易地设置多个“ 个性 ”来连接到不同的MySQL服务器,或者使用不同的帐户连接到给定的服务器。--login-path
当您调用客户端程序时,可以使用该选项稍后使用名称选择这些中的任何一个。例如,要连接到远程服务器,请使用以下命令:
shell> mysql --login-path=remote
在这里,MySQL的读取 [client]
和[mysql]
其他选项的文件选项组,和 [client]
,[mysql]
和 [remote]
从登录路径文件组。
要连接到本地服务器,请使用以下命令:
shell> mysql --login-path=client
因为默认情况下,mysql读取 client
和mysql
登录路径,所以--login-path
在这种情况下,该 选项不会添加任何内容。该命令与此相同:
shell> mysql
从登录路径文件读取的选项优先于从其他选项文件读取的选项。从稍后出现在登录路径文件中的登录路径组中读取的选项优先于从文件中先前出现的组读取的选项。
mysql_config_editor按照创建它们的顺序将登录路径添加到登录路径文件中,因此您应该稍后创建更多通用登录路径的第一个和更具体的路径。如果您需要在文件中移动登录路径,则可以将其删除,然后重新创建它以将其添加到最后。例如, client
登录路径更为通用,因为它可以被所有客户端程序读取,而 mysqldump
登录路径只能通过 mysqldump读取 。稍后指定的选项将覆盖之前指定的选项,因此按照顺序放置登录路径client
,mysqldump
可以启用 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命令和命令特定的选项。
表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_name
d:t:o,/tmp/mysql_config_editor.trace
--verbose
, -v
详细模式。打印关于该程序的更多信息。如果操作没有您期望的效果,此选项可能有助于诊断问题。
--version
, -V
显示版本信息并退出。
本节描述了允许的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
禁用它。
本文由学什么技术好网独家翻译