我有一个连接MySQLdb的Python脚本,当我在命令行输入它时运行完全正常但在尝试通过cronjob运行时失败。可以假设cronjob语句正确调用脚本,但脚本完全无法尝试连接数据库。
我是否需要为mysql打开某种权限才能让cronjob进行交互?脚本的文件权限完全打开chmod 777
。我使用语句(表示它已连接)连接到数据库:
import MySQLdb as mdb
mdb.connect(read_default_file="./my.cnf")
但是当我尝试选择一个已知的数据库.select_db("known_db")
时,它说无法找到它,如果我尝试使用.query()
语句创建它,则脚本完全失败。想法?
答案 0 :(得分:1)
那应该是因为您的cron执行目录与您的工作目录不同
尝试从
更改cron中的行* * * * * python /path/to/your/script/script.py
到
* * * * * 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")