【发布时间】:2013-11-23 04:11:07
【问题描述】:
我尝试使用 mysqldump 和 cronjobs 备份我的数据库。
嗯,我在root用户的crontab中添加了如下命令:
*/30 * * * * mysqldump -u root -pVERYSECUREPASSWORD --all-databases > /var/www/cloud/dump_komplett.sql &> /dev/null
到目前为止,这工作正常,但问题是在此命令中设置了密码。
所以我想包含一个看起来像这样的 .database.cnf 文件
[mysqldump]
user=root
password=VERYSECUREPASSWORD
并将mysqldump命令更改为
mysqldump --defaults-extra-file="/var/crons/mysql/.database.cnf" --all-databases -u root > /var/www/cloud/dump_komplett.sql
解决这个问题。
但此命令失败并出现错误:
mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using password: YES) when trying to connect
我不知道怎么了。
以下是我也尝试过的一些命令:
mysqldump --defaults-extra-file="/var/crons/mysql/.database.cnf" --all-databases > /var/www/cloud/dump_komplett.sql
mysqldump --defaults-file="/var/crons/mysql/.database.cnf" --all-databases > /var/www/cloud/dump_komplett.sql
mysqldump --defaults-file="/var/crons/mysql/.database.cnf" --all-databases -u root > /var/www/cloud/dump_komplett.sql
和.database.cnf的内容我也试过了:
[client]
user=root
password=VERYSECUREPASSWORD
[mysqldump]
host=localhost
user=root
password=VERYSECUREPASSWORD
[client]
host=localhost
user=root
password=VERYSECUREPASSWORD
【问题讨论】:
-
这些命令中的任何一个都可以在您的命令行中使用吗?
-
我也从命令行尝试了这些命令。 (不仅是 crontab)
-
感谢链接,用户必须在命令中指定,而不是在带有“u”参数的文件中。
-
那么酷,已将其添加为答案。
标签: mysql cron backup mysqldump crontab