Python Linux/Unix服务器:访问与执行脚本位于不同目录中的SQL数据库
我有一个python脚本,它执行SQL查询&从SQLite3数据库文件获取信息。SQLite3数据库文件位于与执行脚本不同的目录中。所有这些都发生在我的webhostUnix服务器cpanel的cgi-bin目录中 我的问题:是否可以让python脚本访问/连接到另一个目录中的SQLite3数据库?现在,当我在Web主机上运行脚本时,它无法连接到SQLite3数据库 我的python文件存在于webhost上的以下目录中:public_HTML/cgi bin/dataMiner/。SQLite3数据库文件存在于public_HTML/cgi bin/目录中 我在python脚本中的代码是:Python Linux/Unix服务器:访问与执行脚本位于不同目录中的SQL数据库,python,sql,webserver,Python,Sql,Webserver,我有一个python脚本,它执行SQL查询&从SQLite3数据库文件获取信息。SQLite3数据库文件位于与执行脚本不同的目录中。所有这些都发生在我的webhostUnix服务器cpanel的cgi-bin目录中 我的问题:是否可以让python脚本访问/连接到另一个目录中的SQLite3数据库?现在,当我在Web主机上运行脚本时,它无法连接到SQLite3数据库 我的python文件存在于webhost上的以下目录中:public_HTML/cgi bin/dataMiner/。SQLite
import DataMiner
def connect_ex( f_name ):
""" Post: """
try:
# When the script runs the file is never found but it actually does exist
if not os.path.isfile( f_name ):
raise Exception("")
conn = sqlite3.connect( f_name )
return conn
except IOError, msg:
#print str(msg)
return None
except OSError, msg:
#print str(msg)
return None
except sqlite3.OperationalError, msg:
#print str(msg)
return None
except Exception, e:
return None
conn = connect_ex("../competitionDB.db")
res = DataMiner.execute_query( conn, "SELECT * FROM MyTable;" )
print res
conn.close()
对于我使用的firebird数据库,您必须指定从服务器根目录到数据库的完整路径 例如,So/var/folder/www/db/dbfile.db,其中/var位于 仅仅从网站db/dbfile.db中说出它的位置,至少对firebird来说是行不通的
为了安全起见,这还允许您将数据库文件放在一个甚至不在网站上的文件夹中。您是否尝试过放数据库的绝对路径而不是相对路径?您的意思是:?然后是&同样的问题发生了,您收到的错误消息是什么样子的?可能是权限问题吗?IE在许多主机上,与您的用户名不同的Web服务器用户是否有权访问数据库及其所在的目录?