n1ro°
RU

Ошибки · Решение

SQLite SQLITE_READONLY (8): база открыта только для чтения

Запись запрещена режимом открытия, файловыми правами или состоянием конкретного SQLite/VFS сценария.

Редакция N1RO · Проверено

Короткий ответ

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 проблемы.

Безопасные шаги

  1. Откройте базу в read-write режиме только если приложению действительно нужна запись.
  2. Исправьте ownership/permissions для service account, не используйте chmod 777 как универсальный обход.
  3. При read-only filesystem сначала устраните storage проблему.

Только безопасные обратимые действия. Опасные шаги — только по официальной инструкции и с пониманием рисков.

Когда нужен сервис

  • Если права выглядят корректно, сохраните extended result code: варианты SQLITE_READONLY_* точнее укажут причину.

Похожие ошибки

  • /errors/sqlite-busy-5/
  • /errors/sqlite-locked-6/
  • /errors/sqlite-interrupt-9/

Что учитывать

Точная причина зависит от версии ПО/прошивки, полного текста ошибки и контекста. Официальная инструкция имеет приоритет.

Официальный источник

Расшифровка сверена с официальными страницами поддержки из источников ниже. Редакция N1RO не диагностировала ваш конкретный случай.