mysqldump:得到错误:1045:尝试连接时,“对用户'root'@'localhost'的访问被拒绝使用密码:NO“

问题描述

我正在尝试使用以下命令进行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/backupsbackup.sh的权限级别,由backup.timerbackup.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