我在使用 bdtables 在 python 中打开 berkeley db 时遇到问题。由于我用来访问数据库的库使用 bdtables,因此我需要它来工作。
问题似乎是我试图打开的 db 环境(我有一个要打开的数据库副本)是 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 中收到以下错误“没有这样的文件或目录”。