是否可以在 .my.cnf 中为每个数据库或每个主机配置密码

xen*_*ide 58 mysql configuration

我有以下内容 ~/.my.cnf

[client]
password="somepass"
Run Code Online (Sandbox Code Playgroud)

但这不是我用于连接到的每个 user@host/database 的密码。有没有办法在配置中为不同的东西指定不同的密码,所以我不必输入它们?

Der*_*ney 83

正如我在此处回答的那样,您可以使用以下语法为您连接的每个用户/主机/数据库添加一个部分~/.my.cnf

[clienthost1]   # Note: client + host1
user=myuser
password=mypass
database=dbname
host=server.location.com
Run Code Online (Sandbox Code Playgroud)

一旦这是在您的用户中.my.cnf,您就可以通过在命令行上执行此操作来使用它:

$ mysql --defaults-group-suffix=host1
Run Code Online (Sandbox Code Playgroud)


kqw*_*kqw 10

另一个答案是正确的。不幸的mysqladmin是不支持--defaults-group-suffix(至少不是我使用的版本)。

因此我求助于使用--defaults-file=HOST.cnf,它适用于mysql,mysqladminmysqldump

  • 将此添加到我的 .bash_profile 使其变得更加容易:`alias my-host='mysql --defaults-file=HOST.cnf'` (2认同)

小智 10

从 mysql 5.6.6 开始,不建议在文本文件中设置明文密码。

您可以使用mysql_config_editor加密保存密码,也可以为不同的连接提供不同的密码https://dev.mysql.com/doc/refman/5.6/en/mysql-config-editor.html

  • 默默无闻的安全... (3认同)
  • 在此程序 (1) 向后移植到以前的版本,(2) 允许自动部署密码(即,不强制在 TTY 上读取密码)之前,我不推荐这种方法。 (2认同)