我在 debian 上安装了automysqlbackup。我将 USERNAME 和 PASSWORD 添加到/etc/default/automysqlbackup
,但是当 automysqlbackup 运行时,我得到输出:
/etc/cron.daily/automysqlbackup:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO
就好像我不会配置任何凭据一样。
automysqlbackup 配置是默认配置,最后添加了两行:
USERNAME=root
PASSWORD="the root password"
/etc/mysql/debian.cnf
默认配置尝试从(在 bash 片段中使用 grep )获取凭据/etc/default/automysqlbackup
,其中包含警告该文件已被弃用并且在新安装中不再包含任何管理员密码。
/etc/default/automysqlbackup
我用 strace 尝试了 automysqlbackup,即使不是由 cron 启动,它也至少可以读取。但是,它不使用密码。
问题是在文件末尾附加了 USERNAME 和 PASSWORD,而文件被评估为 shellscript 并包含一些
mysql
命令来列出已经需要登录的数据库名称。debian.cnf
通过查找这样的数据库,它似乎也做出了可用且包含所需凭据的强有力假设:这可能需要使用参数
$USERNAME
而$PASSWORD
不是弃用的默认文件。我知道旧的 mysql/mariadb 包配置了一个维护用户,
debian.cnf
但全新安装不包含这样的帐户,因此在尝试列出数据库时脚本已经失败。配置文件已经包含一个似乎有效的注释掉的替代方案:
我必须说,这两条线在我看来都有些脆弱。我不确定这是否会在某个时候中断,以及整个 automysqlbackup 脚本或至少它的配置是否不是最可靠的解决方案。