9

我正在尝试从 Ubuntu 14.04.2 中的转储中恢复 mongodb 数据库,转储是在 MongoDB shell 版本:2.4.13 上创建的,我正在恢复 MongoDB shell 版本:3.0.1。

这是我正在运行的命令和我得到的错误。

mongorestore /home/somename/backups/staging/mongo

2015-04-01T12:12:32.886+0200 构建要从 /home/somename/backups/staging/mongo 目录恢复的数据库和集合列表

2015-04-01T12:12:32.896+0200 假设转储目录中的用户来自 <= 2.4(身份验证版本 1)

2015-04-01T12:12:32.896+0200 失败:转储中的用户和角色集合与目标服务器的身份验证版本不兼容:无法将身份验证版本 1 的用户恢复到身份验证版本 5 的服务器

有没有办法解决它或修复它?

任何帮助都感激不尽

4

3 回答 3

14

您可以通过将admin目录移出转储文件夹来解决此问题,然后重新运行 mongorestore 命令。

例如,如果你跑

mongorestore --dir ~/path/to/mongodumpdir

它失败了,那么很可能你admin在那里有一个文件夹。您可以将其移出,然后重新运行上面的命令。

我相信,特别是,这system.users.bson是导致问题的原因。由于 mongo2.x.x并以3.x.x不同的方式添加和存储用户。

当然,旧 mongodb 中的用户在新数据库中将不可用,但您始终可以手动将它们添加回来。

于 2015-04-29T23:08:27.383 回答
2

尝试在 CLI 命令中添加身份验证数据库:--authenticationDatabase admin

于 2015-11-23T10:22:28.837 回答
0

尝试添加--authenticationMechanism SCRAM-SHA-1

参考文档: https ://docs.mongodb.com/manual/reference/program/mongorestore/#cmdoption--authenticationMechanism

于 2017-01-25T10:38:44.177 回答