SQLite 데이터베이스를 읽기 전용에서 읽기-쓰기로 변경하려면 어떻게해야합니까?
업데이트 문을 실행할 때 항상 다음을 얻었습니다.
SQL 오류 : 읽기 전용 데이터베이스 쓰기 시도
SQLite 파일은 파일 시스템에서 쓰기 가능한 파일입니다.
답변
이 오류 메시지에는 여러 가지 이유가있을 수 있습니다.
답변
/ db dir의 모든 파일에서 소유자를 루트에서 나로 변경하여이 문제를 해결했습니다.
그냥 할 ls -l
파일러 중 하나가 소유하고있는 경우, 해당 폴더에 root
그냥 당신로 변경, 사용 :sudo chown user file
답변
이 오류는 일반적으로 이미 한 응용 프로그램에서 데이터베이스에 액세스하고 다른 응용 프로그램에서 액세스하려고 할 때 발생합니다.
답변
Android를 사용하는 경우.
만들기 확실히 당신은 당신에 대한 쓰기 권한을 추가 한 EXTERNAL_STORAGE
당신에 AndroidManifest.xml
.
태그 AndroidManifest.xml
위와 외부 에이 줄을 파일에 추가합니다 <application>
.
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
이렇게하면 애플리케이션이 sdcard에 쓸 수 있습니다. 이것은 EXTERNAL_STORAGE
장치에 데이터베이스를 저장 한 위치에있는 경우 도움이됩니다 .
답변
Linux 명령 셸에서 다음을 수행했습니다.
chmod 777 <db_folder>
데이터베이스 파일이있는 위치입니다.
효과가있다. 이제 데이터베이스에 액세스하고 쿼리를 삽입 할 수 있습니다.
답변
(이 오류 메시지는 일반적으로 오해의 소지가 있으며 일반적으로 일반적인 권한 오류입니다.)
Windows에서
- 데이터베이스에 대해 SQL을 직접 발행하는 경우 SQL을 실행하는 데 사용하는 애플리케이션이 관리자로 실행 중인지 확인하십시오.
- 응용 프로그램이 업데이트를 시도하는 경우 데이터베이스에 액세스하는 데 사용하는 계정에 데이터베이스 파일이 포함 된 폴더에 대한 권한이 필요할 수 있습니다. 예를 들어 IIS가 데이터베이스에 액세스하는 경우 IUSR 및 IIS_IUSRS 모두 적절한 권한이 필요할 수 있습니다 (이 계정에 일시적으로 폴더에 대한 모든 권한을 부여하고 작동하는지 확인한 다음 적절한 권한을 묶음으로써 시도 할 수 있음).
답변
오늘도이 문제가있었습니다.
Windows Mobile의 ActiveSync로 인해 발생했습니다. 내가 작업하던 폴더가 동기화되어 AS 프로세스가 때때로이 오류를 일으키는 DB 파일을 가져 왔습니다.