2013-07-21 78 views
0

我的问题是这样的:MySQL查询没有的cronjob中运行

mysql -u root -pmypassword -D cache -e "DELETE FROM cache WHERE job 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 

当我在终端内手动运行此命令它工作正常。所以问题是,为什么这个查询没有运行?

+0

可能的身份验证问题,我的第一个猜测。你是否查看过其他线索的MySQL日志? – 2013-07-21 01:34:26

回答

1

可能的原因是

  1. ,因为你没有提供的MySQL完整的路径
  2. 您的密码包含需要转义字符

试图改变

 
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');" 
^^^^^^^^^^^^^^      ^  ^
+0

Argh。是的 - 那是问题所在。谢谢彼得。将在5分钟内接受答案。 – Lucas