2013-12-11 87 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

非常感謝你,這正是問題所在! –