2016-07-30 18 views
0

Ich finde, dass neue sqlite3 Datenbank-Dateien vor jeder Verwendung, die ich kenne, gesperrt sind.Neue sqlite3 Datenbank ist gesperrt

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

lsof auf die neue Datei ist leer. Das Kopieren der Datenbankdatei an einen neuen Speicherort hilft nicht. Berechtigungen für die Datei sind in Ordnung.

Wie kann ich sonst herausfinden, warum eine neue sqlite3-Datei gesperrt werden könnte?

Antwort

1

Mit Blick auf die Dokumente, meine beste Schätzung ist, dass dies auftritt, weil die Datenbankdatei auf einem NFS-Mount für Vagrant ist. Nach der Dokumentation:

Man sollte beachten, dass POSIX beratende Sperrungen Buggy oder sogar unimplemented auf vielen NFS-Implementierungen bekannt sind ... Ihre beste Verteidigung ist SQLite nicht für Dateien auf einem Netzwerk-Dateisystem zu verwenden.

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

Ich konnte das Problem lösen, indem Sie die Dateiberechtigungen auf dem eingehängten Ordner auf dem Host-Rechner zu setzen.