当前位置: 首页 > 面试题库 >

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

卓学智
2023-03-14
问题内容

在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.
}
}

问题答案:

问题你正在使用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中指定的数据库路径是完整路径。

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



 类似资料:
  • 问题内容: 问题:为什么我不能打开数据库? 信息:我正在使用数据库进行项目。我编写了一个测试程序,该程序运行并传递数据库: 单元测试程序可以使之毫无问题。但是,当我实际使用将相同位置传递给它的程序时,出现以下错误: OperationalError:无法打开数据库文件 我试着用: 在三种情况下,我遇到了以上错误。最令人沮丧的部分是事实可以做到这一点,但实际程序却做不到。 关于到底发生了什么的任何线

  • 我用的是Android平板,上面有Xamarin/C#应用。我试图用这款平板电脑访问驻留在我的Windows 10机器上的SQLite数据库。我选择使用USB/Android而不是Android模拟器,应用程序仍然驻留在Windows 10机器上。这似乎无关紧要,但我也尝试过映射驱动器、共享文件夹和创建网络连接。项目参考 这是代码: 命名空间CicoAndroid{公共部分类MainPage: C

  • 当我跑步时 我得到这个错误 get _ new _ connection conn = database . connect(* * conn _ params)Django . db . utils . operational错误:无法打开数据库文件 my settings.py:

  • 我知道以前有人问过这个问题。但是,问题是,相同的代码(用于数据库处理程序)适用于另一个应用程序,但不是我目前正在开发的应用程序。我甚至通过在“设置”中检查权限来确保授予了权限。下面是日志: 05-13 15:35:45.693 29696-29696/com。实例乱劈校正器E/SQLiteLog:(14)无法打开[5a3022e081](14)os\U unix第31282行的文件。c: 3128

  • 问题内容: 我在我的应用程序中做了一些重复的操作(测试),突然我收到一个奇怪的错误: 我已经重新启动服务器,但是错误仍然存​​在。可能是什么呢? 问题答案: 从Django文档中: SQLite是一个轻量级的数据库,因此不支持高级别的并发性。OperationalError:数据库已锁定错误,表明你的应用程序并发性超过sqlite在默认配置下无法处理的并发性。此错误意味着一个线程或进程在数据库连接

  • 问题内容: 我正在尝试使用Java程序在本地控制我的Lotus Notes,以便为我自动发送电子邮件。尝试获取数据库对象时遇到以下问题。 我收到以下异常: 我已经将我的nsf文件和Notes.jar复制到了我的类路径中,谁知道这是什么问题? 问题答案: 需要检查的几件事。 第一次更改: 至: 如果仍然无法正常工作,请更改: 至: 我还建议养成回收Domino对象的习惯。