从 cron 运行 SQL 查询

从 cron 运行 SQL 查询

我想通过 cron 运行 SQL 查询。我想我会创建一个.sql文件并从我放在 cron 文件夹中的脚本中调用它。该查询相对较大,而且不是我编写的,所以我不想在 PHP 中重新创建它。

有人能帮忙吗?我不太清楚如何从脚本运行 SQL 查询。提前致谢。

编辑:仅提供一些背景信息,该查询旨在从多个表中获取数据并将其组织在 csv 文件中。

答案1

每个数据库都有一个命令行客户端工具

对于 MySQL,请参阅man mysql

在 cron 中添加类似这样的命令

cat /dir/query.sql|mysql database -u user -ppass >result


对于 PHP,您可以使用文件 IO 来读取查询,然后在请求中使用字符串变量代替查询。

答案2

我最终使用的解决方案是将查询放在“此处文档”中。然后使用 cron 实现此 bash 脚本。有关更多信息,请查看此链接: http://snippets.dzone.com/posts/show/3078

为了防止该链接失效,下面是示例代码的片段:

#! /usr/bin/env bash
# execute some bash scripting commands here

mysql mydatabase <<SQL_ENTRY_TAG_1
SELECT * 
  FROM mytable 
  WHERE somecondition='somevalue';
SQL_ENTRY_TAG_1

# execute other bash scripting commands here

mysql mydatabase <<SQL_ENTRY_TAG_2
SELECT *
  FROM myothertable
  WHERE someothercondition='someothervalue';
SQL_ENTRY_TAG_2

相关内容