【问题标题】:MySQL query doesn't run within cronjobMySQL 查询不在 cronjob 中运行
【发布时间】:2013-07-21 01:30:09
【问题描述】:

我的问题是这样的:

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

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

【问题讨论】:

  • 可能的身份验证问题,我的第一个疯狂猜测。您是否查看过 MySQL 日志以获取其他线索?

标签: mysql bash terminal


【解决方案1】:

可能的原因是

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

尝试改变

mysql -u mysql-u1494 -pmy-password -D cache -e "从缓存中删除作业在('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');" ^^^^^^^^^^^^^^^ ^ ^

【讨论】:

  • 啊。是的——这就是问题所在。谢谢彼得。将在 5 分钟内接受答案。
猜你喜欢
  • 1970-01-01
  • 2018-01-26
  • 2015-10-13
  • 2012-12-02
  • 2018-04-09
  • 2011-10-09
  • 1970-01-01
  • 2017-12-03
  • 1970-01-01
相关资源
最近更新 更多