我发现在我知道任何使用之前,新的sqlite3数据库文件都已锁定。
sqlite3 new.sqlite
sqlite> SELECT * FROM SQLITE_MASTER;
Error: database is locked
lsof
在新文件上为空。将数据库文件复制到新位置无济于事。该文件的权限是可以的。
我还能如何确定为什么新的sqlite3文件可能被锁定?
查看文档,我最大的猜测是这正在发生,因为数据库文件位于Vagrant的NFS挂载上。根据文档:
应该注意的是,已知POSIX咨询锁定在许多NFS实现中都是错误的,甚至没有实现。您最好的防御是不要对网络文件系统上的文件使用SQLite。
https://www.sqlite.org/lockingv3.html
通过在主机上已安装的文件夹上设置文件许可权,我能够解决此问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句