该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
通过一些努力来解密文件。
<