[sqlite] SQLite 데이터베이스 모드를 읽기-쓰기로 변경

SQLite 데이터베이스를 읽기 전용에서 읽기-쓰기로 변경하려면 어떻게해야합니까?

업데이트 문을 실행할 때 항상 다음을 얻었습니다.

SQL 오류 : 읽기 전용 데이터베이스 쓰기 시도

SQLite 파일은 파일 시스템에서 쓰기 가능한 파일입니다.



답변

이 오류 메시지에는 여러 가지 이유가있을 수 있습니다.

  • 여러 프로세스에서 동시에 데이터베이스를 엽니 다 ( FAQ 참조 ).

  • 데이터베이스를 압축하고 암호화하는 플러그인이 있습니다. DB를 수정할 수 없습니다.

  • 마지막으로, 또 다른 FAQ 는 “데이터베이스 파일이 포함 된 디렉토리가 CGI 스크립트를 실행하는 사용자도 쓸 수 있는지 확인하십시오.”라고 말합니다. 엔진이 디렉토리에 더 많은 파일을 만들어야하기 때문이라고 생각합니다.

  • 예를 들어 충돌 후 전체 파일 시스템이 읽기 전용 일 수 있습니다.

  • Unix 시스템에서는 다른 프로세스가 전체 파일을 대체 할 수 있습니다.


답변

/ 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 파일을 가져 왔습니다.