我的问题是:
mysql -u root -pmypassword -D cache -e "从缓存中删除作业 IN('SET', 'UO', 'AV');"
MySQL 查询不与 cronjob 一起运行。我确信 cronjob 会自行启动,因为其余代码 (mysqldump) 正在运行。
#!/usr/local/bin/bash
mysql -u mysql-u1494 -pmy-password -D cache -e "DELETE FROM cache WHERE job IN('SET', 'UO', 'AV');"
/usr/local/bin/mysqldump --skip-lock-tables --ignore-table=log.log --user="mysql-u1494" --password="my-password" names > dump.sql
当我在终端内手动运行此命令时,它工作正常。所以问题是,为什么这个查询不运行?
最佳答案
可能的原因是
- 因为您没有提供 mysql 的完整路径
- 您的密码包含需要转义的字符
尝试改变
mysql -u mysql-u1494 -pmy-password -D cache -e "DELETE FROM cache WHERE job IN('SET', 'UO', 'AV');"
至
/usr/local/bin/mysql -u mysql-u1494 -p"my-password" -D cache -e "DELETE FROM cache WHERE job IN('SET', 'UO', 'AV');" ^^^^^^^^^^^^^^ ^ ^
关于MySQL 查询不在 cronjob 内运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17768253/