Python crontab无法执行MySQLdb查询
我有一个与MySQLdb连接的Python脚本,当我在命令行中输入它时,它运行得非常好,但当试图通过cronjob运行它时失败。可以假定cronjob语句在调用脚本时是正确的,但是脚本在尝试连接数据库时完全失败了 我是否需要为mysql打开某种权限才能进行cronjob交互?脚本的文件权限已完全打开Python crontab无法执行MySQLdb查询,python,cron,crontab,mysql-python,Python,Cron,Crontab,Mysql Python,我有一个与MySQLdb连接的Python脚本,当我在命令行中输入它时,它运行得非常好,但当试图通过cronjob运行它时失败。可以假定cronjob语句在调用脚本时是正确的,但是脚本在尝试连接数据库时完全失败了 我是否需要为mysql打开某种权限才能进行cronjob交互?脚本的文件权限已完全打开chmod 777。我使用以下语句连接到DB(该语句表示它已连接): 但是当我尝试选择一个已知的数据库.select\u db(“known\u db”)时,它会说找不到它,如果我尝试使用.query
chmod 777
。我使用以下语句连接到DB(该语句表示它已连接):
但是当我尝试选择一个已知的数据库
.select\u db(“known\u db”)
时,它会说找不到它,如果我尝试使用.query()
语句创建它,脚本将完全失败。想法?这应该是因为您的cron执行目录与您的工作目录不同
尝试将cron中的行从
* * * * * python /path/to/your/script/script.py
到
或者您可以更改脚本:
import os
import MySQLdb as mdb
mdb.connect(read_default_file=os.path.realpath(__file__)+"/my.cnf")
太棒了,非常感谢,这正是问题所在!
* * * * * 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")