问题描述
我正在尝试使用以下命令进行MysqLdump:MysqLdump -u root -A -R -E --triggers --single-transaction > /home/backups/full_backup_${TODAY}.sql
此命令运行正常,以root用户身份登录并运行时没有错误。但是,当使用systemd / timers将其作为日常工作运行时,此命令将引发错误-
MysqLdump:得到错误:1045:尝试连接时,“对用户'root'@'localhost'的访问被拒绝(使用密码:否)“
这是我的配置详细信息-
我在~/.my.cnf
中将凭据保存为:
[client]
password = "mypassword"
[MysqLdump]
user = root
host = localhost
/etc/systemd/system/backup.service
和/etc/systemd/system/backup.timer
的许可级别
-rwxrwxrwx 1 root root 90 Nov 5 17:34 backup.service*
-rwxrwxrwx 1 root root 132 Nov 11 10:15 backup.timer*
~/.my.cnf
的许可级别
-rw------- 1 root root 76 Nov 5 15:57 .my.cnf
/home/backups
和backup.sh
的权限级别,由backup.timer
和backup.service
执行
-rw------- 1 root root 1872 Nov 11 10:11 backup.sh
drw------- 2 iftvdev users 4096 Nov 11 10:27 backups/
我的backup.timer
文件-
[Unit]
Description=backup
[Timer]
OnCalendar=*-*-* 10:17:00
Persistent=true
Unit=backup.service
[Install]
WantedBy=timers.target
和backup.service
文件-
[Unit]
Description=backup job
[Service]
Type=oneshot
ExecStart=/bin/bash /home/backup.sh
解决方法
我刚刚在自己的主目录中创建了一个新文件夹,并使用我的defaults-extra-file
命令传递了mysqldump
,它可以正常工作。
此问题已解决-the PHP documentation