문제

BDTables를 사용하여 파이썬에서 버클리 DB를 여는 데 문제가 있습니다. 데이터베이스에 액세스하는 데 사용중인 라이브러리에서 BDTables를 사용하므로 작동해야합니다.

문제는 내가 열려고하는 DB 환경 (데이터베이스 사본을 열겠다)은 버전 4.4이고 libdb는 버전 4.6입니다. bsddb.dbtables.bsdtabledb ([dbname], [폴더])를 사용하여 다음 오류가 발생합니다.

(-30972, "DB_VERSION_MISMATCH: Database environment version mismatch -- Program version 4.6 doesn't match environment version 4.4")

그러나 bsddb.btopen ([dbname])가 작동합니다.

또한 DB4.4-UTIL, DB4.5-UTIL 및 DB4.6-UTIL 설치를 시도했습니다. db4.6_verify 결과를 사용하려고 시도합니다.

db4.6_verify: Program version 4.6 doesn't match environment version 4.4
db4.6_verify: DB_ENV->open: DB_VERSION_MISMATCH: Database environment version mismatchs

DB4.4_VERIFY는 컴퓨터가 방금 매달려 있으며 아무 일도 일어나지 않습니다.

마지막으로 데이터베이스에서 DB4.4_Recover를 실행하면 작동합니다. 그러나 나중에 파이썬에서 다음과 같은 오류 '그러한 파일이나 디렉토리가 없다'는 오류가 발생합니다.

도움이 되었습니까?

해결책

답은 질문에 대한 추가 질문 목록 페이지에 답을 갖는 것으로 표시되기 때문에 질문에 대한 부록이 아닌 "답변"섹션에 있어야한다고 생각합니다. 나는 당신을 위해 그것을 할 것입니다. 그러나 당신이 그것을하기 위해 도착한다면, 내 대답에 의견을 남겨두면 삭제할 수 있습니다.

"문제의 답변"인용 :

이 질문의 모든 것을 확인하면 결국 문제를 해결했습니다. '그러한 파일 또는 디렉토리 없음'은 일부 __db.xxx 파일이 누락되어 발생합니다. 사용

bsddb.dbtables.bsdTableDB([dbname],[folder], create=1)

DB4.4_Recover 이후이 파일이 생성되었고 이제 모든 것이 작동하고 있습니다.

그럼에도 불구하고 그것은 약간 모호한 문제였으며 처음에는 알아 내기가 어려웠습니다. 그러나 질문 덕분에 CLI에서 Berkeley DB 파일을 검사합니다, 필요한 도구를 얻었습니다. 누군가가 미래에 같은 문제로 끝나고 stackoverflow.com에서 끝나면 여기에 게시하겠습니다.

다른 팁

젠장,이 질문의 모든 것을 확인하면 결국 문제를 해결했습니다. '그러한 파일 또는 디렉토리 없음'은 일부 __db.xxx 파일이 누락되어 발생합니다. bsddb.dbtables.bsdtabledb ([dbname], [폴더], create = 1)를 사용하여 db4.4_recover 후이 파일이 생성되었고 이제 모든 것이 작동하고 있습니다.

그럼에도 불구하고 그것은 약간 모호한 문제였으며 처음에는 알아 내기가 어려웠습니다. 그러나 CLI의 Berkeley DB 파일을 조사한 질문 덕분에 필요한 도구를 얻었습니다. 누군가가 미래에 같은 문제로 끝나고 stackoverflow.com에서 끝나면 여기에 게시하겠습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top