在python中打开berkeley db的问题
作者:互联网
我在使用bdtables在python中打开一个berkeley数据库时遇到问题.由于我用来访问数据库的库使用了bdtables,我需要它才能工作.
问题似乎是我试图打开的数据库环境(我打开了数据库的副本),版本为4.4,而libdb是版本4.6.我使用bsddb.dbtables.bsdTableDB([dbname],[folder])得到以下错误:
(-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,那就行了.但是,之后我在python中收到以下错误’没有这样的文件或目录’.
解决方法:
我认为答案应该放在“答案”部分,而不是作为问题的附录,因为这标志着问题在各个问题列表页面上有答案.我会为你做的,但是,如果你也可以这样做,请对我的回答发表评论,以便删除它.
引用“有问题的答案”:
验证这个问题中的所有内容,我最终解决了这个问题. “没有这样的文件或目录”是由一些__db.XXX文件丢失引起的.运用
bsddb.dbtables.bsdTableDB([dbname],[folder], create=1)
在db4.4_recover之后,这些文件已经创建,现在一切正常.
尽管如此,这仍然是一个不起眼的问题,最初很难弄明白.但是由于问题Examining Berkeley DB files from the CLI,我得到了我需要的工具.如果有人在将来遇到同样的问题并最终到达stackoverflow.com,我会在这里发布
标签:python,database,berkeley-db 来源: https://codeday.me/bug/20190701/1345312.html