鍍金池/ 問(wèn)答/Python  Linux  數(shù)據(jù)庫(kù)  網(wǎng)絡(luò)安全/ flask部署到linux上無(wú)法訪問(wèn)sqlite3數(shù)據(jù)庫(kù)

flask部署到linux上無(wú)法訪問(wèn)sqlite3數(shù)據(jù)庫(kù)

自己筆記本上(Windows 10)測(cè)試可以正常運(yùn)行
部署到服務(wù)器上失敗

報(bào)錯(cuò)信息

i Feb 09 20:42:22.808818 2018] [wsgi:error] [pid 2365] [client
223.91.36.119:26414] mod_wsgi (pid=2365): Exception occurred processing WSGI script '/data/wwwroot/default/OBlog/flask.wsgi'. [Fri
Feb 09 20:42:22.808861 2018] [wsgi:error] [pid 2365] [client
223.91.36.119:26414] Traceback (most recent call last): [Fri Feb 09 20:42:22.809462 2018] [wsgi:error] [pid 2365] [client
223.91.36.119:26414] File "/usr/lib64/python3.4/site-packages/flask/app.py", line 1997, in
call [Fri Feb 09 20:42:22.809472 2018] [wsgi:error] [pid 2365] [client 223.91.36.119:26414] return self.wsgi_app(environ,
start_response) [Fri Feb 09 20:42:22.809502 2018] [wsgi:error] [pid
2365] [client 223.91.36.119:26414] File
"/usr/lib64/python3.4/site-packages/flask/app.py", line 1985, in
wsgi_app [Fri Feb 09 20:42:22.809507 2018] [wsgi:error] [pid 2365]
[client 223.91.36.119:26414] response = self.handle_exception(e)
[Fri Feb 09 20:42:22.809527 2018] [wsgi:error] [pid 2365] [client
223.91.36.119:26414] File "/usr/lib64/python3.4/site-packages/flask/app.py", line 1540, in
handle_exception [Fri Feb 09 20:42:22.809531 2018] [wsgi:error] [pid
2365] [client 223.91.36.119:26414] reraise(exc_type, exc_value,
tb) [Fri Feb 09 20:42:22.809640 2018] [wsgi:error] [pid 2365] [client
223.91.36.119:26414] File "/usr/lib64/python3.4/site-packages/flask/_compat.py", line 33, in
reraise [Fri Feb 09 20:42:22.809647 2018] [wsgi:error] [pid 2365]
[client 223.91.36.119:26414] raise value [Fri Feb 09
20:42:22.809671 2018] [wsgi:error] [pid 2365] [client
223.91.36.119:26414] File "/usr/lib64/python3.4/site-packages/flask/app.py", line 1982, in
wsgi_app [Fri Feb 09 20:42:22.809675 2018] [wsgi:error] [pid 2365]
[client 223.91.36.119:26414] response =
self.full_dispatch_request() [Fri Feb 09 20:42:22.809693 2018]
[wsgi:error] [pid 2365] [client 223.91.36.119:26414] File
"/usr/lib64/python3.4/site-packages/flask/app.py", line 1614, in
full_dispatch_request [Fri Feb 09 20:42:22.809697 2018] [wsgi:error]
[pid 2365] [client 223.91.36.119:26414] rv =
self.handle_user_exception(e) [Fri Feb 09 20:42:22.809713 2018]
[wsgi:error] [pid 2365] [client 223.91.36.119:26414] File
"/usr/lib64/python3.4/site-packages/flask/app.py", line 1517, in
handle_user_exception [Fri Feb 09 20:42:22.809717 2018] [wsgi:error]
[pid 2365] [client 223.91.36.119:26414] reraise(exc_type,
exc_value, tb) [Fri Feb 09 20:42:22.809733 2018] [wsgi:error] [pid
2365] [client 223.91.36.119:26414] File
"/usr/lib64/python3.4/site-packages/flask/_compat.py", line 33, in
reraise [Fri Feb 09 20:42:22.809736 2018] [wsgi:error] [pid 2365]
[client 223.91.36.119:26414] raise value [Fri Feb 09
20:42:22.809752 2018] [wsgi:error] [pid 2365] [client
223.91.36.119:26414] File "/usr/lib64/python3.4/site-packages/flask/app.py", line 1610, in
full_dispatch_request [Fri Feb 09 20:42:22.809755 2018] [wsgi:error]
[pid 2365] [client 223.91.36.119:26414] rv =
self.preprocess_request() [Fri Feb 09 20:42:22.809771 2018]
[wsgi:error] [pid 2365] [client 223.91.36.119:26414] File
"/usr/lib64/python3.4/site-packages/flask/app.py", line 1831, in
preprocess_request [Fri Feb 09 20:42:22.809774 2018] [wsgi:error] [pid
2365] [client 223.91.36.119:26414] rv = func() [Fri Feb 09
20:42:22.809885 2018] [wsgi:error] [pid 2365] [client
223.91.36.119:26414] File "/data/wwwroot/default/OBlog/OBlog/views/default.py", line 76, in
before_request [Fri Feb 09 20:42:22.809892 2018] [wsgi:error] [pid
2365] [client 223.91.36.119:26414] g.db =
sqlite3.connect(app.config['DATABASE']) [Fri Feb 09 20:42:22.809914
2018] [wsgi:error] [pid 2365] [client 223.91.36.119:26414]
sqlite3.OperationalError: unable to open database file

看了下,大概是sqlite3.OperationalError: unable to open database file訪問(wèn)數(shù)據(jù)庫(kù)失敗

但是我數(shù)據(jù)庫(kù)和文件夾都給了777權(quán)限

圖片描述

實(shí)在不知道為什么會(huì)這樣(我直接ssh里運(yùn)行python然后import sqlite3 能正常讀取數(shù)據(jù)庫(kù))

回答
編輯回答
何蘇葉

不是很清楚你創(chuàng)建app和config中的代碼怎么寫的,但是應(yīng)該不是相對(duì)路徑的問(wèn)題。
我使用相對(duì)路徑就可以的。
建議下次提問(wèn)的時(shí)候把報(bào)錯(cuò)信息、相關(guān)代碼全貼出來(lái)。

# config文件配置
SQLALCHEMY_DATABASE_URI = 'sqlite+pysqlite:///./test.db'
2018年4月21日 21:54
編輯回答
拼未來(lái)

把數(shù)據(jù)庫(kù)換成絕對(duì)路徑可以了
雖然相對(duì)路徑?jīng)]錯(cuò),但是必須是絕對(duì)路徑才行

2018年2月3日 05:51