Новая база данных sqlite3 заблокирована
Я обнаружил, что новые файлы базы данных sqlite3 заблокированы перед любым использованием, которое я знаю.
sqlite3 new.sqlite
sqlite> SELECT * FROM SQLITE_MASTER;
Error: database is locked
lsof
на новый файл пуст. Копирование файла базы данных в новое место не помогает. Разрешения на файл в порядке.
Как еще можно определить, почему новый файл sqlite3 может быть заблокирован?
1 ответ
Глядя на документы, я думаю, что это происходит потому, что файл базы данных находится на монтировании NFS для Vagrant. Согласно документам:
Следует отметить, что консультативная блокировка POSIX, как известно, глючит или даже не реализуется во многих реализациях NFS... Ваша лучшая защита - не использовать SQLite для файлов в сетевой файловой системе.
https://www.sqlite.org/lockingv3.html
Я смог решить эту проблему, установив права доступа к файлам в смонтированной папке на хост-компьютере.