使用mongodump和mongodb地图集

时间:2017-10-09 19:44:05

标签: mongodb

由于某些原因,我无法使用连接字符串连接到地图集,而是使用mongo而不是使用mongodump。我尝试过所有类型的字符串。

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

  当我改变时,

“失败:错误连接到db:无法访问的服务器”   主持人来自   “蒙戈:// replset1:27017,replset2:27017,replset3:271017 /测试replicaSet = replicaSetName”   to --host replicaSetName / replset1:27017,replset:27017,replset3:27017

任何人都知道这里的问题。

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

10 个答案:

答案 0 :(得分:18)

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

答案 1 :(得分:5)

就我而言,我终于得到了这样的方式:

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

其中:

  • DB-NAME:要备份的数据库的名称
  • SUPERUSER:具有所有权限的用户名,即创建群集的用户名
  • SUPERUSER-PASSWORD:自我解释;)
  • PATH / TO / DUMP / FOLDER:您要保存转储的位置
  • AUTH-DB:默认情况下,用于身份验证的数据库名为“admin”
  • REPLICA-SET-NAME:“cluster-name-shard-0”形式的副本集名称
  • CLUSTER-SHARD:集群分片IE的名称:“cluster-name-shard-00-00-kb2rd.mongodb.net,cluster-name-shard-00-01-kb2rd.mongodb.net,cluster-name -shard-00-02-kb2rd.mongodb.net“

答案 2 :(得分:1)

我遇到了同样的错误,但以下解决方法对我有用。您似乎可以通过Backup Tunnel连接到数据库的最新快照。基本上它的作用是允许在指定端口上模拟MongoDB Server。这意味着您可以定期连接它,例如使用'mongodump'。

官方文档的链接 - https://docs.atlas.mongodb.com/restore-queryable-backup/

答案 3 :(得分:1)

如果您有srv字符串。
您只需执行mongodump --uri=mongodb+srv://xxx:yyy@cluster0-whatever.mongodb.net
这似乎只是为我工作:)

答案 4 :(得分:1)

每次我从mongo地图集转储数据库时,都会使用此命令。希望这可以帮助。编码愉快...:)

mongodump -d $dbName -u $username -p $password \
-o . --authenticationDatabase admin --ssl --port 27017 \
-h $hostname

答案 5 :(得分:1)

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

mongodump --uri mongodb+srv://<username>:<PASSWORD>@made-up-url.5a45j.mongodb.net/<DATABASE>

但是我建议稍作更改。在URI中省略<password>,因为您的密码很有可能包含一些特殊字符,并且直接在命令中使用非编码密码既烦人又不安全。 mongodump之后将提示您输入密码。

mongodump --uri mongodb+srv://<username>@made-up-url.5a45j.mongodb.net/<DATABASE>

无痛。

答案 6 :(得分:1)

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

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

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

答案 7 :(得分:0)

mongodump-主机主机名-用户名用户名-密码密码--db数据库名--out文件夹位置

答案 8 :(得分:0)

mongodump --uri“ your_atlas_connection_string”

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 

答案 9 :(得分:0)

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

Future.delayed(Duration.zero,