![](/img/trans.png)
[英]Django-admin: cant access admin backend “attempt to write a readonly database”
[英]Django admin backend 'Operational Error' attempt to write a readonly database
這個問題似乎已經被問過很多次了,但我檢查過的所有解決方案都沒有對我有用。 我在安裝了 Django 1.6.1 的 Ubuntu 14.04 服務器上運行nginx
。 我正在嘗試為項目使用默認的 django 管理后端(通常在 localhost/admin/)。
我遇到的問題是OperationalError at /admin/ attempt to write a readonly database
(當我更改 db.sqlite3 文件的 chmod 權限時更新,錯誤現在OperationalError at /admin/ unable to open database file
讀取OperationalError at /admin/ unable to open database file
但我已經檢查了Django 新手錯誤網站上的每個選項以獲得答案並且沒有骰子)
一些答案談到了生成的數據庫文件db.sqlite3
的 r+w+x 權限,據我所知,即使 db 文件上的777
也沒有做任何事情,所以我將它保持在656
。
據我所知,django 項目可以找到(所有頁面都可以正常呈現,/admin 頁面在沒有 css 的情況下呈現。當我嘗試使用 localhost/admin/ 登錄並單擊提交時,我得到了帶有錯誤的 django 調試頁面)。 它們都歸root:root
。 我曾嘗試更改www-data:www-data
擁有的每個文件和目錄的權限,但什么也沒有。
我什至嘗試將 settings.py 更改為數據庫的絕對路徑而不是os.path.join(BASE_DIR, 'db.sqlite3')
我認為這歸結為所有權問題,但我會接受任何幫助。
在所有的麻煩和 2 個多小時的撞牆之后,檔案館的答案......
我正在使用 gunicorn,我從 Digital Ocean 設置了一個餅干切割機,它使用戶 django。 我認為千篇一律的方法將是一種快捷方式,易於修改並跳過無聊的部分。 原來在/etc/init/gunicorn.conf
setuid
和setgid
被設置為用戶 django。 我沒有閱讀文檔並假設這些沒有什么意義的錯。
如果您遇到此問題,請刪除setuid
或setgid
或將它們設置為www-data
。
這個錯誤通常是由以不同的用戶身份運行服務器引起的(我猜你正在運行一台 linux 機器)。 如果您以 root/管理員身份創建項目並以較低狀態的用戶身份運行服務器,那么您將收到錯誤消息。
嘗試使用 sudo 權限運行服務器,即
sudo python3 manage.py runserver
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.