mongodump 结果失败:无法创建会话:无法连接到服务器:connection() : dial tcp: i/o timeout

Chr*_*vin 5 macos mongodb mongodump mongodb-atlas

我正在尝试从 MongoDB Atlas 备份数据库。

运行以下mongodump命令时(当然缺少信息):

mongodump --uri mongodb+srv://<USERNAME>:<PASSWORD>@<STUFF>.mongodb.net/<DATABASE> 
Run Code Online (Sandbox Code Playgroud)

我收到以下回复:

Failed: can't create session: could not connect to server: connection() : dial tcp: i/o timeout
Run Code Online (Sandbox Code Playgroud)

我已经在另一台计算机上尝试过这个命令,它工作正常,所以我很确定错误不是在服务器端,而是与我的计算机有关(尽管我可以使用mongodump本地数据库)。我还尝试过mongodump其他帐户上的其他 MongoDB Atlas 数据库,但收到相同的响应。

mongodump是按照MongoDB 安装文档mongodb-community通过 homebrew 安装的。我尝试完全删除系统上的所有 mongodb 相关文件(包括mongodb-database-tools)并重新安装mongodb-community. 在本地,我可以通过 javascript mongodb nodejs 驱动程序连接到数据库。

当我跑步时mongodump --version我收到:

mongodump version: 100.3.1
git version: 32632b931f9c41d8314b75ecc88e551b012b1e30
Go version: go1.15.8
   os: darwin
   arch: amd64
   compiler: gc
Run Code Online (Sandbox Code Playgroud)

我在 2012 年中的 Retina MacBook Pro 上运行 macOS Catalina 版本 10.15.7。

更新

我现在mongodump在使用 VPN 服务时尝试了该命令,它有效。

更新2

24 小时后,该mongodump命令再次开始工作。我相信这是我的互联网提供商的防火墙(或其他)的问题,不允许该命令连接到 MongoDB Atlas 服务器。

Roh*_*ami 0

正确的解决方案是在集群的“网络访问”选项卡中将当前 IP 地址列入白名单。脚步:

  1. 转到Network Access选项卡
  2. 点击+ ADD IP ADDRESS按钮
  3. 在访问列表条目字段中输入您当前的 IP 地址。
  4. 确认