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