在我的OpenBSD框中,我有以下用户_mysql的crontab
0 4 * * * /backup/mysql_backup/mysql_backup.sh 0 9 * * 1 mysql -uroot -pMySQLpassword -e "purge master logs before date_sub(now(),interval 5 day);"
第一个目的是在这个盒子上备份mysql数据库。 我现在意识到这些作业还没有运行,因为用户_mysql被拒绝连接的权限(我已经确认_mysql用户的密码是正确的)。
所以,我想我应该有一个不同的用户的crontab这些工作,但哪(我认为他们不应该在根的crontab)? 所以,我正在寻找如何configuration这个build议。 或者我需要更改我的MySQLconfiguration。
编辑
该脚本与数据库位于同一台服务器上。 这些crontab条目失败并显示错误
connect('; host = localhost; mysql_read_default_group = mysqlhotcopy','',…)失败:在/ usr / local / bin / mysqlhotcopy第178行拒绝用户'_mysql'@'localhost'(使用密码:YES) aigaion_copy DBI
您可以在my.cnf中使用expire_logs_days = 5来执行与第二个cron作业相同的function。 这可能是更可靠的。
运行cronjob(_mysql)的系统用户与连接数据库的用户(root)无关。 唯一的事情是服务器主机名/ IP脚本连接。
脚本与数据库在同一台服务器上吗? 尝试运行这些命令时出现的确切错误是什么?
根据发布的错误消息,用户'_mysql'@'localhost'没有DB内部的必要权限。
您需要授予此用户必要的权限,或者在/backup/mysql_backup/mysql_backup.sh脚本中使用不同的凭据。