【问题标题】:connecting to remote mongo server results in exception connect failed连接到远程 mongo 服务器导致异常连接失败
【发布时间】:2012-12-10 05:26:38
【问题描述】:

在 mongodb.org 的 mongodb 安装文件中运行此命令

./mongo ds045907.mongolab.com:45907/database -u user -p password

为了匿名,我更改了数据库、用户和密码。

结果

Error: couldn't connect to server ds045907.mongolab.com:45907 src/mongo/shell/mongo.js:93
exception: connect failed

也许我被服务器防火墙阻止了?我使用 git 或 brew 或 pip 没有问题...

【问题讨论】:

  • 如果您尝试连接到 mongolab,则本地 mongod 不相关,您可以从问题中删除对它的引用。我尝试设置 mongolab 帐户并连接并得到同样的错误 - 所以这可能是他们的问题(你可以尝试联系他们的支持)。如果您尝试连接到本地数据库,那么您可以键入只运行“mongo”而无需其他参数(它将默认连接到本地数据库)。
  • 您可能需要一个完全限定的 URL,但正如所说的,它似乎应该可以工作

标签: mongodb mlab


【解决方案1】:

这是您这边的连接问题。我试过了,但收到登录失败消息:

MongoDB shell 版本:1.6.5

连接到:ds045907.mongolab.com:45907/database

12 月 24 日星期一 01:12:31 未捕获的异常:登录失败

异常:登录失败

【讨论】:

  • 可能检查提示密码是否正确:./mongo ds045907.mongolab.com:45907/database -u user -p
【解决方案2】:

您可以尝试以下一些方法,但您可以随时通过 support@mongolab.com 与我们联系。我相信我们可以查明真相。

匿名 mongo shell 连接

Mongo 让您无需身份验证即可连接。对于未经身份验证的连接,您几乎无能为力,但您可以将其用作测试,将连接问题与凭据问题区分开来。

% mongo ds045907.mongolab.com:45907
MongoDB shell version: 2.0.7
connecting to: ds045907.mongolab.com:45907/test
> db.version()
2.2.2
> db.runCommand({ping:1})
{ "ok" : 1 }
> exit
bye

如果您可以在不进行身份验证的情况下连接并运行如上所示的命令,但尝试通过身份验证进行连接失败,那么您的凭据有问题。但是,如果即使不提供凭据也无法连接,则说明您存在连接问题。

ping

该服务器确实允许 ICMP 流量,因此请确保无论您身在何处都可以访问它。

% ping ds045907.mongolab.com
PING ec2-107-20-85-188.compute-1.amazonaws.com (107.20.85.188): 56 data bytes
64 bytes from 107.20.85.188: icmp_seq=0 ttl=41 time=99.744 ms
64 bytes from 107.20.85.188: icmp_seq=1 ttl=41 time=99.475 ms
64 bytes from 107.20.85.188: icmp_seq=2 ttl=41 time=99.930 ms
^C
--- ec2-107-20-85-188.compute-1.amazonaws.com ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 99.475/99.716/99.930/0.187 ms

跟踪路由

如果ping 失败,请使用traceroute(或Windows 上的tracert)尝试找出问题所在。但是,一旦跟踪到达 AWS,它就会消失。这很正常。 AWS 可防止跟踪深入其网络。使用某种 IP 反向查找工具(很多在网络上)确保您列表中的最后一个 IP 归亚马逊所有。

% traceroute ds045907.mongolab.com
traceroute to ec2-107-20-85-188.compute-1.amazonaws.com (107.20.85.188), 64 hops max, 52 byte packets
 1  192.168.1.1 (192.168.1.1)  1.092 ms  0.865 ms  1.047 ms
 2  192.168.27.1 (192.168.27.1)  1.414 ms  1.330 ms  1.224 ms

            ... snipped to protect the innocent ...

14  72.21.220.83 (72.21.220.83)  87.777 ms
    72.21.220.75 (72.21.220.75)  87.406 ms
    205.251.229.55 (205.251.229.55)  99.363 ms
15  72.21.222.145 (72.21.222.145)  87.703 ms
    178.236.3.24 (178.236.3.24)  98.662 ms
    72.21.220.75 (72.21.220.75)  87.708 ms
16  216.182.224.55 (216.182.224.55)  87.312 ms  86.791 ms  89.005 ms
17  * 216.182.224.55 (216.182.224.55)  91.373 ms *
18  216.182.224.55 (216.182.224.55)  121.754 ms * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *

【讨论】:

  • 我也遇到了这个问题,我试过你的检查。对 mongo ds045907.mongolab.com:45907 的调用失败,但是 ping 有效。我想这意味着我需要让我的网络管理员知道,但不知道具体告诉他们什么。感谢您的帮助!
  • 如果您可以 ping 但无法通过 TCP 连接到 mongo 端口,那么很可能该端口被阻塞了。他们需要以某种方式允许其上的流量。
  • 哦,好的,所以我需要请求访问端口 45907。谢谢
  • 既然你不是 OP 我猜你的端口号是不同的。您应该使用服务器的主机名和端口。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-29
  • 1970-01-01
  • 1970-01-01
  • 2014-11-05
  • 1970-01-01
相关资源
最近更新 更多