从本地迁移到 MongoDb Atlas

Jat*_*t90 5 mongodb mongodb-atlas

我正在尝试将本地 MongoDB 迁移到 Atlas。

我设法使用 localhost 运行 mongodump 命令,并且可以看到 ./dump/data.bson 中的文件

但是,当我现在想要将此转储恢复到 Atlas 时,我收到“失败:连接到数据库服务器时出错:没有可访问的服务器”。

这很奇怪,因为我可以使用以下命令从 mongo shell (v4.0) 连接到 Atlas:“mongo mongodb+srv://cluster0-xxxxxx.mongodb.net/test --username Bob”,其中提示我输入密码并连接良好。

这是 mongorestore 命令,它给了我上述连接错误:

mongorestore --ssl --host mongodb+srv://cluster0-xxxxx.mongodb.net/test --username Bob --authenticationDatabase admin --dir dump/data --password Test123
Run Code Online (Sandbox Code Playgroud)

感谢你的帮助。

Min*_*j T 6

=>Windows

  1. mongodump在本地系统上运行,无需任何选项。

  2. 从同一系统运行:

     mongorestore --uri mongodb+srv://<Yorname>:<*******>@cluster0.dvxc9.mongodb.net/Databasename --username <Yourname> -d Databasename "C:\Users\user\dump\Databasename" -v
    
    Run Code Online (Sandbox Code Playgroud)

//如果出现 mongorestore 目标错误=>检查目标是否提供正确(同时检查双引号 -"")


小智 5

atlas 网站上有明确的文档。当您查看集群时,将会有一个 Cmd Line Tools 选项卡。

以下是步骤。

  1. mongodump在本地系统上运行,无需任何选项。

  2. 从同一系统运行:mongorestore --uri mongodb+srv://<USER>:<PASSWORD>@thename.mongo.gives.your.cluster.mongodb.net

如果尚未打开,您可能需要打开 atlas 防火墙以允许来自本地计算机 IP 的连接。


Jat*_*t90 4

好的,我找到了解决方案。

您需要将集合导出为 JSON(可以通过 Compass -> Collection(下拉菜单)-> Export Collection 来执行此操作)。

然后您需要使用 mongoimport (而不是 mongorestore)。完整信息在这里: https: //docs.atlas.mongodb.com/import/mongoimport/

我猜 mongorestore 不起作用,因为我的本地是一个独立的数据库,而 Atlas 是一个副本集......尽管我还没有证实这一点。

编辑我最近再次尝试并感到困惑。所以我把它完整地拼写出来。

在 mongodb 目录中,需要运行 mongoimport --uri "connectionURI" --collection "collectionName" --file "filename.json"

您通过 atlas 中名为“连接您的应用程序”的选项获得的连接 URI,它应该包含您的密码(您必须转义特殊字符)。

希望能帮助到你。