新的sqlite3数据库已被锁定

时间:2016-07-30 12:00:53

标签: sqlite filesystems vagrant nfs

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

sqlite3 new.sqlite
sqlite> SELECT * FROM SQLITE_MASTER;
Error: database is locked
新文件上的

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

我怎样才能确定为什么可以锁定新的sqlite3文件?

1 个答案:

答案 0 :(得分:1)

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

  

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

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

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