2013-12-11 88 views
0

我有一个Python脚本与MySQLdb连接,当我在命令行上输入它时运行得非常好,但在尝试通过cronjob运行时失败。 cronjob语句可以被认为是正确的,因为它调用脚本,但脚本完全失败,试图连接数据库。crontab无法MySQLdb查询

我是否需要打开某种权限才能使mysql与cronjob进行交互?该脚本的文件权限完全打开chmod 777。我连接到数据库使用的语句(称已连接):

import MySQLdb as mdb 
mdb.connect(read_default_file="./my.cnf") 

但后来当我尝试选择一个已知的数据库.select_db("known_db")它说,它无法找到,如果我尝试使用.query()创建声明脚本完全失败。想法?

回答

1

这应该是因为你的cron执行目录不一样,那么你的工作目录

尝试从

* * * * * python /path/to/your/script/script.py 

改变你在cron行

* * * * * cd /path/to/your/script/ && python script.py 

,或者你可以改变你的脚本:

import os 
import MySQLdb as mdb 
mdb.connect(read_default_file=os.path.realpath(__file__)+"/my.cnf") 
+0

非常感谢你,这正是问题所在! –