Новая база данных 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

Я смог решить эту проблему, установив права доступа к файлам в смонтированной папке на хост-компьютере.

Другие вопросы по тегам