此版本的 MongoDB 太新,无法在现有数据文件上启动。尝试 MongoDB 4.2 或更早版本

Kev*_*RED 5 linux mongodb

我最近将 mongodb 版本从 4.2 更新到了 4.4。似乎它有一些突破性的变化。

现在该服务根本没有运行,并向我显示此错误。

我知道降级不是一种选择。但是有没有办法解决这个问题?

提前致谢

Nic*_*art 15

在使用 mongodb 4.4 之前,您首先需要将数据库升级到 4.2 版本。

从与迁移相关的官方指南中并不直接明显看出,但 mongodb 不会自动更新数据库版本以匹配 mongodb 程序的版本。

实际上它会尝试与创建数据库时使用的版本保持兼容性。您需要执行一项手动操作来告诉 mongodb 更新数据库的格式。

Mongodb 版本倾向于理解以前版本使用的格式,但不能理解旧版本(因此 mongo 4.4 可以使用 4.2 版本中的数据库,但不能使用更早版本)。

因此,解决方案是首先启动一个与数据库版本兼容的 mongodb 实例(在您的例子中为 4.2),并使用mongo客户端发出以下命令:

db.adminCommand( { setFeatureCompatibilityVersion: "4.2" } )
Run Code Online (Sandbox Code Playgroud)

这实际上会要求 mongodb 迁移数据库的格式以使用版本 4.2。

现在,您可以使用 mongoDB 4.4 版本,但它将以与 4.2 版本兼容的模式使用您的数据库。

您可以直接发出下一个命令来立即应用迁移。

db.adminCommand( { setFeatureCompatibilityVersion: "4.4" } )
Run Code Online (Sandbox Code Playgroud)

MongoDB 的每个版本都需要这些操作。因此,如果您碰巧有一个落后了多个版本的数据库,则必须通过 MongoDB 的每个版本手动更新它。


Kev*_*RED 4

我找到了解决方案,但这很难。

我删除了里面的所有内容/data/db,因为我保留了所有猫鼬数据。

我暂时备份了数据,但没有得到正确的解决方案