等同于.pgpass的MySQL,或cron作业中针对mySQL的自动身份验证


8

我正在编写一个bash脚本来备份数据库。大多数都是postgresql,而在postgres中,有一种方法可以避免通过创建包含postgres密码的〜/ .pgpass文件来进行身份验证。我将其放在root的主目录中,并将其设置为chmod 0600,以便root可以转储postgres数据库而无需进行身份验证。现在我想为mysql做类似的事情,尽管我只有一个mysql数据库。我怎样才能做到这一点?我不想在mysqldump的命令行上指定密码,因为这是脚本的一部分,对于其他用户来说可能有些可见。有没有一种更好的方法(即内置于mysql)来执行此操作,而不是制作一个只有root用户才能读取的文件,然后再读取该文件以获得mysql密码,然后在bash脚本中将其用作变量?


嗯,奇怪的是,我发现通过Google而不是serverfault自己的搜索很有希望:stackoverflow.com/questions/601995/…–
Ibrahim



是的,很明显,我的搜寻功能不足。
易卜拉欣

Answers:


6

~/.my.cnf为运行mysql的用户创建一个文件。它应包含以下内容:

[client]
user = root
password = yourpassword

我猜想要补充的一件事是,如果使用sudo运行脚本,则需要使用-H以确保其使用根目录的主目录。但是我认为这个问题不应该是根cron工作的问题,对吗?
易卜拉欣

3
但是,如何处理多个帐户呢?这将适用于localhost,但是如果我想将登录名存储到远程服务器怎么办?
Cerin 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.