我有一个 cron 任务,通过导出来备份我的 MySQL 数据库。脚本包含 root 密码以完成任务。
我收到消息:
Using a password on the command line interface can be insecure
这当然是非常正确的。
原始脚本为:
mysqldump \
--single-transaction \
[more options]
--user=root \
--password= … \
> /data/mysql/mysql.sql
我知道如果我有这个,下面的操作应该可以工作~/.my.cnf
:
[client]
user = root
password = …
并在脚本中省略用户和密码。但是我收到以下错误消息:
mysqldump: Got error: 1045: Access denied for user 'root'@'localhost'
(using password: NO) when trying to connect
这告诉我它不起作用。
显然我做错了。有什么建议吗?
谢谢
答案1
因此,关于 cron 有一件事需要知道,那就是它就像没有环境变量一样。因此它可能不知道 /root/.my.cnf
您可能需要尝试以下标志来指向存储用户/密码的配置的完整路径
--defaults-file=/root/.my.cnf