【问题标题】:Mysqldump without password in crontabcrontab中没有密码的mysqldump
【发布时间】: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


【解决方案1】:

用户必须在命令中指定,而不是在带有u参数的文件中。

有关使用mysqldump 调度cron 作业的更多详细信息,请查看this answer

【讨论】:

    【解决方案2】:

    我发现密码应该在引号之间

    [client]
    user=root
    password="VERYSECUREPASSWORD"
    

    我花了一段时间才弄明白为什么它不适用于包含大量非字母数字符号的密码

    【讨论】:

    • 在带有@#%^ 的长密码中使用引号!密码中的字符
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    • 2013-11-12
    • 1970-01-01
    • 2016-12-01
    • 1970-01-01
    相关资源
    最近更新 更多