我在使用cron将数据加载到MySQL数据库以运行脚本时遇到问题。当脚本由cron运行时,加载进程总是失败,并且无法找到该文件。从命令行开始,如果我以root身份执行脚本(与cron运行的用户相同),它运行得很好。 (仅在cron运行时出现问题)
我运行的其他脚本执行SQL查询,它们运行没有问题。是否有一个技巧可以使用cron来运行包含加载数据语句的脚本?
最初我虽然它可能是权限问题,但它从命令行运行所以我不认为这是问题。我确实将正在加载的文件的权限更改为777,但它失败并出现相同的错误。
来自/ etc / crontab的行:
40 9 * * sun,mon,tue,wed,thu,fri root /home/scripts/loadDWfiles
通过cron运行时从MySQL加载数据文件输出:
ERROR 13 (HY000) at line 10: Can't get stat of '/home/load/LOAD.txt' (Errcode: 2 - No such file or directory)
--------------
LOAD DATA INFILE '/home/load/LOAD.txt' REPLACE INTO TABLE do.EVENTS FIELDS TERMINATED BY '|'
ignore 2 lines
--------------
Bye
loadDWfile脚本的内容:
#!/bin/bash
mysql -vvv < /home/dbscripts/load >> /var/log/loadresults`date '+%m-%d-%Y--%H-%M-%S'`.txt 2>&1
加载文件的内容:
LOAD DATA INFILE '/home/load/LOAD.txt' REPLACE INTO TABLE dbo.EVENTS FIELDS TERMINATED BY '|'
ignore 2 lines;
show warnings;