我的~/.my.cnf中有以下内容:

[client]
password="somepass"


但这不是我用于连接到的每个user @ host / database的密码。有什么方法可以在配置中为不同的事情指定不同的密码,这样我就不必输入密码了?

评论

[用户@DTest在今年5月回答了这样的问题] [1] [1]:dba.stackexchange.com/questions/2820/…

#1 楼

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

[clienthost1]   # Note: client + host1
user=myuser
password=mypass
database=dbname
host=server.location.com


.my.cnf,您可以通过在命令行上执行以下操作来利用它:

$ mysql --defaults-group-suffix=host1


评论


如所承诺的,+ 1!

– RolandoMySQLDBA
11年8月23日在15:42

您能解释一下--defaults-group-suffix吗?

–奥修斯
2015年10月8日14:09

真好我花了一些时间从这里弄清楚其余的内容,但是对于mysql Cron备份,我现在可以使用mysqldump --defaults-group-suffix = host1 -P 3306 -h 111.0.0.xxx --ssl -u db_usr db_name > / home / myaccount / backups / db_name _ $(回显$(date'+ \%Y \%m \%d')。sql.gz)以创建压缩后的备份。谢谢!

–user1324409
2015年12月30日18:48



注意:如果将其放在全局my.cnf中,例如/etc/mysql/my.cnf,但其中有一个用户定义的.my.cnf,其中定义了[client],则后者将覆盖全局文件中的设置!嘘

–奥修斯
16年4月5日在8:24

请注意,MariaDB的联机帮助页错误地指出后缀x会读取[client_x]部分,但实际上您需要后缀_x

–丹尼尔·博默(DanielBöhmer)
19-10-31在21:40

#2 楼

自mysql 5.6.6起,不建议在文本文件中输入明确的密码。

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

评论


默默无闻的安全...

– Federico Razzoli
15年6月18日在14:04

+1代表mysql_config_editor

– RolandoMySQLDBA
15年6月18日在16:26

在将该程序(1)反向移植到以前的版本之前,(2)允许自动进行密码部署(即,不强制在TTY上读取密码),我不建议使用此方法。

–奥修斯
16年4月5日在8:16

MariaDB是否具有与mysql_config_editor匹配的类似支持或功能?

–杰里米·哈耶克(Jeremy Hajek)
17年7月28日在15:54

@JeremyHajek不,它不会,而且可能永远不会,因为MariaDB开发人员指出这只能提供一种错误的提高安全性的感觉:MySQL 5.6:通过自满来实现安全性吗?

–充血
18年6月29日在21:26

#3 楼

另一个答案是正确的。不幸的是mysqladmin不支持--defaults-group-suffix(至少不支持我使用的版本)。因此,我改而使用--defaults-file=HOST.cnf,它适用于mysqlmysqladminmysqldump

评论


将此添加到我的.bash_profile使其更加容易:alias my-host ='mysql --defaults-file = HOST.cnf'

–间谍
15年10月20日在13:59