Я знаю, что это старая версия, но проблема все еще возникает, и это первая ссылка на нее в Google. ОП сказал, что его проблема заключалась в том, что .db находился на SMB-ресурсе, что было именно моей ситуацией. Мои десять минут исследования показывают, что это известный конфликт между sqlite3 и smb; Я нашел сообщения об ошибках, начиная с 2007 года.
Я решил это, добавив опцию «nobrl» в мою строку монтирования smb в / etc / fstab , так что теперь эта строка выглядит следующим образом:
//SERVER/share /mnt/point cifs credentials=/path/to/.creds,sec=ntlm,nobrl 0 0
Эта опция предотвращает отправку клиентом SMB блокировки диапазона байтов на сервер. Я не слишком разбираюсь в деталях своего протокола SMB, но я лучше всего могу сказать, что этот параметр больше всего будет интересен в многопользовательской среде, где кто-то другой может пытаться записать в тот же самый БД, что и вы. По крайней мере, для домашней установки это достаточно безопасно.
Мои соответствующие версии:
- Монетный двор 17,1 Ребекка
- SMB v4.1.6-Ubuntu
- Python v3.4.0
- SQLite v3.8.2
- Сетевой ресурс размещен на сервере Win12R2