新的 sqlite3 数据库被锁定

Posted

技术标签:

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

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

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

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

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

【问题讨论】:

【参考方案1】:

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

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

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

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

【讨论】:

您能详细说明一下吗?之前的文件权限是什么,您将它们更改为什么? @jberryman 我想我实际上在主机上把它传给了我的用户。

以上是关于新的 sqlite3 数据库被锁定的主要内容,如果未能解决你的问题,请参考以下文章

markdown SQLite3 :: BusyException:数据库被锁定

数据库被锁定错误sqlite Ios

SQLite3::BusyException

Sqlit--学习教程(建立数据库表)

SQLite3数据库恢复方法总结

sqlite 的基本使用1