【问题标题】:cron job - how to export data table to csv/xls file?cron 作业 - 如何将数据表导出到 csv/xls 文件?
【发布时间】:2013-11-16 08:01:16
【问题描述】:

我正在尝试配置 cron 作业以自动将日常数据表从 mysql DB 导出到 csv/xls。 我被困在指挥领域。 我应该使用哪个命令?

谢谢。 莫

【问题讨论】:

标签: mysql database cron export-to-csv


【解决方案1】:

这是一个老话题,但对于后人来说,我发现在这种情况下可行的方法是将 SQL 简单地写在一个单独的文件中,然后将该文件源到 mysql.xml 中。这样,您就不必担心引号和转义等问题。

例如,我会有一个类似的 SQL 文件,名为 exportinventory.sql

SELECT * 
FROM inventory INTO OUTFILE '/tmp/inventory.csv' 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n';

然后,从命令行:

mysql -u user -p database < exportinventory.sql

【讨论】:

    【解决方案2】:

    需要完成三个步骤:

    1. 编写 proggy,根据需要导出数据(php、java)
    2. 编写一个bash脚本,正确设置环境和调用 这个前卫
    3. 将此脚本插入到用户的 crontab 中

    你可以在这里找到这三个人的信息。

    【讨论】:

      【解决方案3】:

      你可以试试这样的:

       mysql -h $DB_HOST -u $DB_USER --password=$DB_PASSWORD $DB_NAME -e "$YOUR_QUERY INTO OUTFILE '$PATH_TO_OUTPUT_FILE' FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\n'"
      

      【讨论】:

      • 我试着按照你说的做,但它不起作用。这就是我写的:mysql -u userXX --password=123 --database=db_xx -e SELECT 'user.q1','user.q2' FROM 'users' WHERE 'user.q2'='1' LIMIT 0 , 10000 INTO OUTFILE '/csvfiles/1.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '\' LINES TERMINATED BY '\n'
      • ERROR 1064 (42000) at line 1:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 ''user' LIMIT 0, 10000 INTO OUTFILE '/public_html/csvfiles/1.csv' FIELDS TERMINA' 附近使用正确的语法
      • 您的查询中有错误,您必须将单引号替换为反引号。
      • 你的意思是这样的:mysql -u userXX --password=123 --database=db_xx -e SELECT "user.q1","user.q2" FROM "users" WHERE "user. q2"="1" LIMIT 0, 10000 INTO OUTFILE "/csvfiles/1.csv" 以 "," 结尾的字段由 "\" 以 "\n" 结尾的行
      • mysql -u userXX --password=123 --database=db_xx -e SELECT `user.q1`,`user.q2` FROM users WHERE `user.q2`='1' LIMIT 0 , 10000 INTO OUTFILE '/csvfiles/1.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '\' LINES TERMINATED BY '\n'
      猜你喜欢
      • 2020-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-30
      • 2019-05-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多