新的 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 数据库被锁定的主要内容,如果未能解决你的问题,请参考以下文章