存储MySQL客户端密码,或设置无密码authentication

我正在使用mysql命令行客户端,我不想每次启动客户端时都需要提供密码。 我有什么select?

在主目录中创build一个名为.my.cnf的文件,如下所示。 确保文件系统权限设置为只有拥有的用户才能读取(0600)。

 [client] host = localhost user = username. password = thepassword socket = /var/run/mysqld/mysqld.sock #database = mysql 

既然你也标记了你的问题mysqldump你应该看看这个问题。

在没有root密码的cron作业中使用mysqldump

更新(2016-06-29)如果您正在运行MySQL 5.6.6或更高版本,您应该查看mysql_config_editor工具,该工具允许您将凭据存储在encryption文件中。 感谢乔瓦尼提到这个给我。

您可以使用mysql_config_editor实用程序将authentication凭证存储在名为.mylogin.cnf的encryptionloginpath文件中。

要创build一组新的凭据,请运行:

 mysql_config_editor set --host=db.host.org --user=dbuser --password 

并在提示时input密码。

这会将您的身份validation凭据存储在默认的clientloginpath中。

您可以通过指定不同的--login-path选项来存储多个authentication凭证:

 mysql_config_editor set --login-path=db2 --host=db2.host.org --user=dbuser --password 

默认情况下, mysql客户[client]从其他选项文件中读取[client][mysql]组,以便从loginpath文件中读取它们。 使用--login-path选项,客户端程序还会从loginpath文件中读取指定的loginpath。 从其他选项文件读取的选项组保持不变。 考虑这个命令:

 mysql --login-path=db2 

mysql客户[client]从其他选项文件中读取[client][mysql] ,从loginpath文件中读取[client][mysql][mypath]

要打印出存储在configuration文件中的所有信息,请运行:

 mysql_config_editor print --all=true 

有关该实用程序的更多信息可以在“mysql_config_editor – MySQLconfiguration实用程序”中find 。