将mongodump与mongodb atlas一起使用

将mongodump与mongodb atlas一起使用,mongodb,Mongodb,由于某些原因,我无法使用连接字符串连接到atlas,而是使用mongodump代替mongo。我试过所有类型的绳子 所以,当我用mongodump替换mongo时,要么我得到“不允许位置参数” 或 我明白了 当我更改时,“连接到数据库时出错:无法访问服务器” 主持人来自 "mongo://replset1:27017,replset2:27017,replset3:271017/test?replicaSet=replicaSetName“ to—主机ReplicateSetName/repls

由于某些原因,我无法使用连接字符串连接到atlas,而是使用mongodump代替mongo。我试过所有类型的绳子

所以,当我用mongodump替换mongo时,要么我得到“不允许位置参数” 或 我明白了

当我更改时,“连接到数据库时出错:无法访问服务器” 主持人来自 "mongo://replset1:27017,replset2:27017,replset3:271017/test?replicaSet=replicaSetName“ to—主机ReplicateSetName/replset1:27017,replset:27017,replset3:27017

任何人都知道这里有什么问题


请记住,我可以使用mongo客户端进行连接。

我遇到了相同的错误,但以下解决方法对我有效。您似乎可以通过备份隧道连接到数据库的最新快照。基本上,它允许在指定端口上模拟MongoDB服务器。这意味着您可以像使用“mongodump”一样定期连接到它


链接到官方文档-

在我的案例中,我最终通过以下方式获得:

#mongodump-d DB-NAME-u SUPERUSER-p“SUPERUSER-PASSWORD”-o“PATH/TO/DUMP/FOLDER”-authenticationDatabase AUTH-DB--ssl--端口27017-h“REPLICA-SET-NAME/CLUSTER-SHARD-00-00,CLUSTER-SHARD-00-01,CLUSTER-SHARD-00-02”

其中:

  • DB-NAME:要备份的数据库的名称
  • 超级用户:具有所有权限的用户名,即创建集群时获得的用户名
  • 超级用户密码:自解释;)
  • 路径/到/转储/文件夹:要保存转储的位置
  • AUTH-DB:用于身份验证的数据库,默认情况下称为“admin”
  • REPLICA-SET-NAME:副本集的名称,格式为“cluster-NAME-shard-0”
  • CLUSTER-SHARD:集群碎片的名称,即:“CLUSTER-Name-SHARD-00-00-kb2rd.mongodb.net,CLUSTER-Name-SHARD-00-01-kb2rd.mongodb.net,CLUSTER-Name-SHARD-00-02-kb2rd.mongodb.net”

目前,mongoDB Atlas在集群的“命令行工具”部分为“mongodump”提供了一个复制和粘贴选项。首先登录到mongoDB Atlas集群。接下来,在屏幕左侧确保选择了“集群”。然后,您将看到两个选项“概述”和“安全性”,确保选择了“概述”。在“概述”的正下方,您应该看到“沙盒”。在“沙盒”下,你应该看到你的集群的名称,这是一个可点击的链接,点击它。然后,您将看到许多可选的链接,单击“命令行工具”。在这里,您将看到“mongodump”的复制和粘贴选项

如果您有srv字符串。
您只需执行
mongodump--uri=mongodb即可+srv://xxx:yyy@cluster0.mongodb.net


这对我来说似乎只是一个简单的工作:)

每次我从mongo atlas中转储数据库时,我都使用这个命令。希望这有帮助。快乐编码…:)

mongodump--主机名--用户名--密码--db databasename--out folderlocation

mongodump--uri“您的atlas\u连接\u字符串”

Atlas连接字符串包含用户名、密码和数据库名。 您可以选择您的--out目录

   Anil-iMac:bin anil$ ./mongodump --uri "mongodb+srv://USER_NAME:PASSWORD@mongoatlaslitehrm.0cfre.gcp.mongodb.net/YOUR_DB_NAME?authSource=admin&replicaSet=atlas-m2x7xg-shard-0&readPreference=primary&appname=MongoDB%20Compass%20Community&ssl=true" --out /Users/anil/Development/Personal/mongodb-database-tools-macos-x86_64-100.1.1/bin/bkup 

首先,确保Atlas集群的网络访问是正确的。要进行远程转储,请将实例IP添加到Atlas IP访问列表中

sudo mongodump --uri mongodb+srv://admin:Anson_Alexander%40123@AAC-testing-cluster.ey913.mongodb.net/<NAME_OF_REQUIRED_DB>?authSource=admin&replicaSet=atlas-rz#80g0-shard-0&readPreference=primary&appname=MongoDB%20Compass&ssl=true --out <LOCATION>
sudo mongodump--uri mongodb+srv://admin:Anson_Alexander%40123@AAC testing cluster.ey913.mongodb.net/?authSource=admin&replicaSet=atlas rz#80g0-shard-0&readPreference=primary&appname=mongodb%20Compass&ssl=true--out

正如@charlechode提到的,MongoDB Atlas实际上向您展示了如何正确使用mongodump/mongorestore/mongoexport/mongoimport。在Atlas GUI中访问集群,打开命令行工具(隐藏在“更多选项”下),向下滚动,直到看到:

mongodump--urimongodb+srv://:@make-up-url.5a45j.mongodb.net/

不过,我建议做一点改变。在URI中省略
,因为您的密码很可能包含一些特殊字符,并且直接在命令中使用非编码密码既烦人又不安全。mongodump随后会提示您输入密码

mongodump--urimongodb+srv://@composed-up-url.5a45j.mongodb.net/


无痛。

截至2021年2月,mongoDB v4.4;你可以用

mongodump --uri mongodb+srv://<USERNAME>:<PASSWORD>@cluster-name.mongodb.net/<DATABASE> 
mongodump--urimongodb+srv://:@cluster-name.mongodb.net/

注意:如果不起作用,请尝试省略数据库名称。

在Atlas仪表板上,您可以看到集群概览,其中有三个按钮“连接”。。。点击然后选择命令行工具,在二进制导入和导出工具下,您将需要一个mongorestore和mongodb命令。调整以引用您的本地/bin文件夹和密码。您正在运行哪个版本的mongodb?ThanksHi dworrad版本3.4.10谢谢!我努力让它工作了这么多小时。我在很多地方读到,我必须在转储之前停止复制,我不想这样做,所以在找到这个答案之前,我几乎让它未完成。奇怪的是,我尝试了一个非常相似的版本,但我不明白为什么它们不起作用。糟糕的是,这些错误没有帮助,在某些情况下甚至会产生误导。如果您在传递命令时没有-p/--password,那么您将在shell中提示输入密码。否则,您会将密码存储在.bash_历史记录或类似文件中。这会有所帮助,但现在它位于群集->下拉菜单“集合”按钮旁边的选择->命令行工具下
mongodump --uri mongodb+srv://<USERNAME>:<PASSWORD>@cluster-name.mongodb.net/<DATABASE>