初学Django,连接自己数据库时遇到了django.db.utils.OperationalError: unable to open database file
。于是乎百度,搜到大部分都是说权限不够,需要将sqlite文件所在路径权限改为可读可写:
参考:https://www.cnblogs.com/xingluzhe/archive/2009/08/19/1549669.html
Windows系统用CACLS.exe命令:
cacls c:/database /e /t /g everyone:F
linux系统用chomd命令:sudo chmod -R 777 文件路径
但是试了各种开权限的,无果,还是提示unable to open database file。
还有大佬总结了各种原因:
参考:https://blog.csdn.net/y6300023290/article/details/16888293
1:数据库路改成绝对路径,并且目录要存在
2:数据库会自动建立,之前自己多此一举的建了个数据库,所以有权限问题。
3: 一般在settings.py中配置name路径的时候,如果不具体指到某个盘符,对应的文件夹要在该项目中存在。
4: 请将装xx.db的文件夹改成可读写(去掉只读)
5: 用sqlite3 配置文件中的user,password和host都可以默认为空
自己挨个试了一遍,but!都没用!!!于是乎继续百度啊百度,最后终于在stackoverflow找到了希望!必须在python manage.py runserver
的开头加sudo
!!! 暴风哭泣!
参考:https://stackoverflow.com/questions/40959337/django-db-utils-operationalerror-unable-to-open-database-file
参考链接:
- https://www.cnblogs.com/xingluzhe/archive/2009/08/19/1549669.html
- https://blog.csdn.net/y6300023290/article/details/16888293
- https://stackoverflow.com/questions/40959337/django-db-utils-operationalerror-unable-to-open-database-file
把自己解决问题的过程写下来,自己能印象深刻点,也供大家参考。以上。