Ошибки · Решение
SQLite SQLITE_READONLY (8): база открыта только для чтения
Запись запрещена режимом открытия, файловыми правами или состоянием конкретного SQLite/VFS сценария.
Короткий ответ
SQLITE_READONLY (8) возвращается, когда connection пытается изменить данные, для которых у неё нет write permission. Сверьте код с официальной поддержкой производителя и выполните только безопасные шаги.
Что означает ошибка
Запись запрещена режимом открытия, файловыми правами или состоянием конкретного SQLite/VFS сценария.
Возможные причины
- Файл/директория недоступны на запись пользователю процесса.
- Connection открыта с read-only URI/flags.
- Файловая система или volume смонтированы read-only.
Что проверить
- Проверьте flags/URI открытия базы.
- Проверьте права на db-файл и директорию, где создаются journal/WAL файлы.
- Убедитесь, что underlying filesystem не переключился в read-only после I/O проблемы.
Безопасные шаги
- Откройте базу в read-write режиме только если приложению действительно нужна запись.
- Исправьте ownership/permissions для service account, не используйте chmod 777 как универсальный обход.
- При read-only filesystem сначала устраните storage проблему.
Только безопасные обратимые действия. Опасные шаги — только по официальной инструкции и с пониманием рисков.
Когда нужен сервис
- Если права выглядят корректно, сохраните extended result code: варианты SQLITE_READONLY_* точнее укажут причину.
Похожие ошибки
- /errors/sqlite-busy-5/
- /errors/sqlite-locked-6/
- /errors/sqlite-interrupt-9/
Что учитывать
Точная причина зависит от версии ПО/прошивки, полного текста ошибки и контекста. Официальная инструкция имеет приоритет.
Официальный источник
Расшифровка сверена с официальными страницами поддержки из источников ниже. Редакция N1RO не диагностировала ваш конкретный случай.