GVKun编程网logo

SQLite3,OperationalError:无法打开数据库文件(sql数据库无法打开表)

32

对于SQLite3,OperationalError:无法打开数据库文件感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍sql数据库无法打开表,并为您提供关于android–SQLite–无法打

对于SQLite3,OperationalError:无法打开数据库文件感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍sql数据库无法打开表,并为您提供关于android – SQLite – 无法打开数据库文件、bitbake错误:sqlite3.OperationalError: unable to open database file、D B Browser.Sqlite.OperationalError:数据库被锁定、django.db.utils.OperationalError:无法打开数据库文件的有用信息。

本文目录一览:

SQLite3,OperationalError:无法打开数据库文件(sql数据库无法打开表)

SQLite3,OperationalError:无法打开数据库文件(sql数据库无法打开表)

问题:为什么我不能打开数据库?


信息:我正在使用sqlite3数据库进行项目。我编写了一个测试程序,该程序运行并传递数据库:

/tmp/cer/could.db

单元测试程序可以使之db毫无问题。但是,当我实际使用将相同位置传递给它的程序时,出现以下错误:

OperationalError:无法打开数据库文件

我试着用:

1) an empty database.2) the database and the unit test left behind.3) no database at all.

在三种情况下,我遇到了以上错误。最令人沮丧的部分是事实unittest可以做到这一点,但实际程序却做不到。

关于到底发生了什么的任何线索?

答案1

小编典典

主要诊断:SQLite由于某种原因无法打开该文件。

检查明显的原因,并按建议的大致顺序检查:

  • 该程序是否与您正在测试的同一台计算机上运行?
  • 它是否以您的身份(或至少与您进行测试的用户相同)运行?
  • 磁盘是否/tmp已满?(您在Unix上,因此请使用df /tmp查找。)
  • /tmp/cer目录是否具有“奇数”权限?(SQLite需要能够在其中创建其他文件,以便处理诸如提交日志之类的事情。)
  • 单元测试代码是否仍在使用该数据库?(并发打开 可以用现代足够SQLite和当在正确的文件系统-尽管/tmp几乎总是在正确的排序FS的所以它可能不是-但它仍然不建议使用。)
  • 开发代码是 真的在 尝试写入该数据库,还是“聪明”的东西吸引了您,并导致它尝试打开其他东西?(过去我在代码中被这个问题所吸引;不要以为这不会发生在您身上……)
  • 您是否在单元测试和生产代码中使用相同版本的SQLite库?

如果您不在同一台计算机上,那么生产系统很可能没有/tmp/cer目录。显然首先要解决此问题。同样,如果您在同一台计算机上但以不同的用户身份运行,则可能会遇到权限/所有权问题。磁盘空间是另一个严重的难题,但是可能性很小。我不认为这是最后三个,但是值得检查是否可以解决更明显的部署问题。如果以上都不是,则您遇到了一个奇特的问题,将不得不报告更多的信息(它甚至可能是SQLite中的错误,但是了解它的开发人员,我相信这种可能性很小)。

android – SQLite – 无法打开数据库文件

android – SQLite – 无法打开数据库文件

我正在编写一个Xamarin Android应用程序,并在尝试创建sqlite数据库时遇到错误.

这是我的代码:

string applicationFolderPath = System.IO.Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal),"CanFindLocation");
string databaseFileName = System.IO.Path.Combine(applicationFolderPath,"CanFindLocation.db");
sqlite.sqlite3.Config(sqlite.sqlite3.ConfigOption.Serialized);
var db = new sqliteConnection (databaseFileName);

这是我得到的错误:

sqlite.sqliteException: Could not open database file: /data/data/com.xamarin.docs.android.mapsandlocationdemo2/files/CanFindLocation/CanFindLocation.db (CannotOpen)

我有相同的代码在另一个Xamarin应用程序中工作,并想知道该异常是否与包的名称有关?

提前致谢

解决方法

您提供给sqlite的路径文件夹路径是否存在?如果尚未创建CanFindLocation文件夹,则打开与该路径的连接将失败.

尝试:

string applicationFolderPath = System.IO.Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal),"CanFindLocation");

// Create the folder path.
System.IO.Directory.CreateDirectory(applicationFolderPath);

string databaseFileName = System.IO.Path.Combine(applicationFolderPath,"CanFindLocation.db");
sqlite.sqlite3.Config(sqlite.sqlite3.ConfigOption.Serialized);
var db = new sqliteConnection (databaseFileName);

bitbake错误:sqlite3.OperationalError: unable to open database file

bitbake错误:sqlite3.OperationalError: unable to open database file

[qc@fedora7 stuff]$ bitbake package
Traceback (most recent call last):
File "/myPart1/stuff/bitbake/bin/bitbake",line 134,in <module>
main()
File "/myPart1/stuff/bitbake/bin/bitbake",line 114,in main
cooker = bb.cooker.BBCooker(configuration)
File "/disk/zhaoshan/trunk/bitbake/lib/bb/cooker.py",line 65,in __init__
File "/disk/zhaoshan/trunk/bitbake/lib/bb/cooker.py",line 399,in parseConfigurationFile
File "/disk/zhaoshan/trunk/bitbake/lib/bb/fetch/__init__.py",line 97,in fetcher_init
File "/disk/zhaoshan/trunk/bitbake/lib/bb/persist_data.py",line 70,in delDomain
sqlite3.OperationalError: unable to open database file

磁盘空间已满的原因。因为之前还是正常工作的,也是在编译的过程中出现的错误。

D B Browser.Sqlite.OperationalError:数据库被锁定

D B Browser.Sqlite.OperationalError:数据库被锁定

如何解决D B Browser.Sqlite.OperationalError:数据库被锁定?

我正在尝试将表单提交到 DB browser sqlite。我已经创建了一个表。我能够将数据存储到 sqlite 中。但是,一旦我在提交按钮(submitclaim.html)中添加了一个执行确认弹出框的函数,我就会显示这个错误

sqlite3.OperationalError: database is locked

当我尝试向表格提交表单时,它发生在行上:

    c.execute("INSERT INTO SubmitClaim VALUES (?,?,?)",(depart,type,uploadre,amt,description)

这是我的 app.py

@app.route(''/addrec'',methods=[''POST'',''GET''])
def addrec():
    if request.method == ''POST'':

        depart = request.form[''depart'']
        type = request.form[''type'']
        uploadre = request.form[''uploadre'']

        amt = request.form[''amt'']
        description = request.form[''description'']

    conn = sql.connect(db_path)
    c = conn.cursor()

    c.execute(
        "INSERT INTO SubmitClaim VALUES (?,description))

    conn.commit()

    c.execute("SELECT * FROM  SubmitClaim")
    print(c.fetchall())
    conn.close()

    return render_template(''base.html'',user=session["user"],version=msal.__version__)
     

这是我的 SubmitClaim.html

<div>
    <button onclick="myFunction()" type="submit"name="save",value="save">Submit</button>
    <script>
    function myFunction() {
    confirm("Press a button!");
    }

解决方法

您只需要在 DB Browser SQLITE 中关闭数据库并运行代码

django.db.utils.OperationalError:无法打开数据库文件

django.db.utils.OperationalError:无法打开数据库文件

我跑的时候

python manage.py runserver

我收到这个错误

在get_new_connection中输入文件“/usr/local/lib/python2.7/dist-packages/Django-1.10.1-py2.7.egg/django/db/backends/sqlite3/base.py”,第209行
    conn = Database.connect(** conn_params)
django.db.utils.OperationalError:无法打开数据库文件

我的settings.py:

DATABASES = {
    'default': dj_database_url.config(
        default="sqlite:///{}".format(
            os.path.join(BASE_DIR,'db/db.sqlite3')
        )
    )
}

解决方法

基本上有两个答案,即运行服务器的用户无权打开数据库文件.
你可以尝试解决这个问题:

sudo chown $(whoami):$(whoami) /path/to/dir/db/db.sqlite3

或者您没有此文件,可以通过应用migrate命令创建它:

./manage.py migrate

关于SQLite3,OperationalError:无法打开数据库文件sql数据库无法打开表的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于android – SQLite – 无法打开数据库文件、bitbake错误:sqlite3.OperationalError: unable to open database file、D B Browser.Sqlite.OperationalError:数据库被锁定、django.db.utils.OperationalError:无法打开数据库文件等相关知识的信息别忘了在本站进行查找喔。

本文标签: