mysql备份问题,定时crontab执行数据库备份不起作用,手动运行命令正常

作者:动易软件 来源:本站原创 点击数: 发布时间:2024年08月30日

问题描述:使用mysql自带的mysqldump设置定时备份数据库,手动是可以执行的。如下图,生成了备份文件。

但是,设置的crontab 去执行这个auto.sh脚本的话,却没有生成备份文件的,起初怀疑crontab没有执行。
查看crontab日志
cat   /var/log/cron
发现,是执行了的,注意,crontab执行出错的信息,不会写在日志文件中,而是会发给你一个mail,如下图所示      
查看这个邮件,cat /var/spool/mail/root

错误分析:
脚本文件中的mysqldump命令,在命令行中使用了明文密码不安全,可能导致的crontab任务没有成功的原因

解决方法:
msyql配置文件中,添加账户和密码,这样在命令行中不需要使用用户名和密码找到mysql配置文件   whereis my 

vi /etc/my.cnf,给[mysqldump]功能模块添加上用户名和密码
[mysqldump]
user=用户名
password=密码

 重启msyql,systemctl restart mysqld

测试msyqldump无需要用户名和密码即可完成备份。编辑auto.sh脚本文件,把绝对路径加上,去掉msyqldump后的用户名和密码参数,再次测试自动备份功能能够正常备份。

至此,问题解决 


备注:
crontab配置文件地址   /etc/crontab
crontab日志地址      /usr/log/cron