sqlite3.OperationalError:无法打开数据库文件

发布于 2021-01-29 19:02:18

在Django中设置服务器时出现此错误。它是sqlite3,这意味着它应该创建.db文件,但似乎并非如此。我已经将SQLite规定为后端,并且将其放置在绝对的文件路径中,但是没有运气。

这是错误还是我做错了什么?(只是在想,在Ubuntu中指定的绝对文件路径是否有所不同?)

这是我的settings.py文件的开头:

# Django settings for OmniCloud project.

DEBUG = True
TEMPLATE_DEBUG = DEBUG

ADMINS = (
# ('Your Name', 'your_email@example.com'),
)

MANAGERS = ADMINS

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
    'NAME': '~/Harold-Server/OmniCloud.db',                      # Or path to database file if using sqlite3.
    'USER': '',                      # Not used with sqlite3.
    'PASSWORD': '',                  # Not used with sqlite3.
    'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
    'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
}
}
关注者
0
被浏览
95
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    Django新手错误

    问题您正在使用SQLite3,您的DATABASE_NAME设置为数据库文件的完整路径,该数据库文件可由Apache写入,但是仍然会出现上述错误。

    解决方案:确保Apache也可以写入数据库的父目录。SQLite需要能够写入此目录。

    确保数据库文件的完整路径的每个文件夹都不以数字开头,例如。/ www / 4myweb / db(在Windows 2000上观察到)。

    如果将DATABASE_NAME设置为“ / Users /您的名称/站点/ mydjangoproject / db /
    db”之类的内容,请确保首先创建了“ db”目录。

    确保您的/ tmp目录是可写的(一个不太可能的原因,因为系统上的其他东西也将不起作用)。ls / tmp -ald应该产生drwxrwxrwt…。

    确保settings.py中指定的数据库路径是完整路径。

    另外,请确保该文件位于您期望的位置。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看