【问题标题】:New sqlite3 database is locked新的 sqlite3 数据库被锁定
【发布时间】:2016-07-30 12:00:52
【问题描述】:

我发现新的 sqlite3 数据库文件在我知道的任何使用之前被锁定。

sqlite3 new.sqlite
sqlite> SELECT * FROM SQLITE_MASTER;
Error: database is locked

新文件上的lsof 为空。将数据库文件复制到新位置没有帮助。文件权限正常。

我还能如何确定新的 sqlite3 文件可能被锁定的原因?

【问题讨论】:

    标签: sqlite filesystems vagrant nfs


    【解决方案1】:

    查看文档,我最好的猜测是发生这种情况是因为数据库文件位于 Vagrant 的 NFS 挂载上。根据文档:

    应该注意,已知 POSIX 咨询锁定存在错误或 甚至在许多 NFS 实现上都没有实现……你最好的防御 是不要将 SQLite 用于网络文件系统上的文件。

    https://www.sqlite.org/lockingv3.html

    我能够通过设置主机上已安装文件夹的文件权限来解决此问题。

    【讨论】:

    • 您能详细说明一下吗?之前的文件权限是什么,您将它们更改为什么?
    • @jberryman 我想我实际上在主机上把它传给了我的用户。
    猜你喜欢
    • 2015-11-22
    • 1970-01-01
    • 2012-10-07
    • 1970-01-01
    • 2018-10-07
    • 1970-01-01
    • 2019-04-13
    相关资源
    最近更新 更多