Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python crontab无法执行MySQLdb查询_Python_Cron_Crontab_Mysql Python - Fatal编程技术网

Python crontab无法执行MySQLdb查询

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

我有一个与MySQLdb连接的Python脚本,当我在命令行中输入它时,它运行得非常好,但当试图通过cronjob运行它时失败。可以假定cronjob语句在调用脚本时是正确的,但是脚本在尝试连接数据库时完全失败了

我是否需要为mysql打开某种权限才能进行cronjob交互?脚本的文件权限已完全打开
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")