我正在编写一个 bash 脚本来备份我的数据库。大多数是 postgresql,在 postgres 中,有一种方法可以避免进行身份验证,即创建一个包含 postgres 密码的 ~/.pgpass 文件。我将其放在 root 的主目录中,并将其设置为 chmod 0600,这样 root 就可以转储 postgres 数据库而无需进行身份验证。现在我想对 mysql 做类似的事情,尽管我只有一个 mysql 数据库。我该怎么做?我不想在命令行上为 mysqldump 指定密码,因为这是脚本的一部分,其他用户可能会看到。有没有更好的方法(即内置于 mysql)来做到这一点,而不是创建一个只有 root 可以读取的文件,然后读取该文件以获取 mysql 密码,然后在 bash 脚本中将其用作变量?
答案1
~/.my.cnf
为运行 mysql 的用户创建一个文件。它应包含以下内容:
[client]
user = root
password = yourpassword