0
我發現新的sqlite3數據庫文件在任何我知道的使用之前被鎖定。新的sqlite3數據庫被鎖定
sqlite3 new.sqlite
sqlite> SELECT * FROM SQLITE_MASTER;
Error: database is locked
lsof
上的新文件是空的。將數據庫文件複製到新位置不會有幫助。該文件的權限是確定的。
我怎麼能確定爲什麼新的sqlite3文件可能被鎖定?
我發現新的sqlite3數據庫文件在任何我知道的使用之前被鎖定。新的sqlite3數據庫被鎖定
sqlite3 new.sqlite
sqlite> SELECT * FROM SQLITE_MASTER;
Error: database is locked
lsof
上的新文件是空的。將數據庫文件複製到新位置不會有幫助。該文件的權限是確定的。
我怎麼能確定爲什麼新的sqlite3文件可能被鎖定?
看看文檔,我最好的猜測是,這是因爲數據庫文件位於NFS安裝的Vagrant。根據文檔:
應該注意的是POSIX諮詢鎖定被稱爲是馬車或 甚至未實現許多NFS實現......你最好的防禦 是在網絡文件系統不使用SQLite的文件。
https://www.sqlite.org/lockingv3.html
我能夠通過在主機上安裝的文件夾設置文件權限來解決此問題。