通过MongoDB Compass社区

时间:2018-03-14 18:44:25

标签: mongodb amazon-web-services amazon-ec2 ssh

我有一个EC2实例(Ubuntu 14)。我已经在其安全组中定义了端口27017,可以从任何地方访问。

我正在尝试从我的PC(Windows 10)连接到EC2实例,但收到以下错误:

  

MongoDB未在提供的主机和端口上运行

这是不正确的,因为我确保MongoDB正在运行。

这些是我指定的设置:

enter image description here

我也尝试过使用SSH(也是在sercurity组中定义并通过终端运行良好),但是出现了以下错误:

  

创建SSH隧道时出错:(SSH)通道打开失败:连接   拒绝

这些是我指定的设置:

enter image description here

2 个答案:

答案 0 :(得分:8)

阿龙,
  检查站

  1. 查看是否需要在/etc/mongodb.conf文件中更改bind_ip变量。
    默认情况下,它被锁定到localhost 尝试将值设置为0.0.0.0或分配能够将DB连接到它的IP。
  2. 在EC2附带的安全组中允许使用端口(您提到已完成)
  3. 不使用私有IP进行连接(我猜,当你通过终端连接时,你正在使用正确的IP)
  4. 罕见的情况,操作系统防火墙
  5. 我想第1点应该可以解决问题。休息点以备将来参考

    [更新1]
    bindIp的文档链接
    https://docs.mongodb.com/manual/reference/configuration-options/#net-options

答案 1 :(得分:0)

我将其作为答案,尽管它是对raevilman的回答,但我还没有必要的声誉来发表评论。

如果您如上所述将bind_ip变量设置为0.0.0.0,则MongoDB接受来自所有IP地址的连接。如果您不使用访问控制,则可能存在安全风险。

另一方面,如果我没有记错的话,SSH隧道的想法是,在这种情况下,对于MongoDB,进入的连接来自本地主机,因此无需更改配置。

也就是说,我来这里是因为我也无法连接。我收到错误消息“创建SSH隧道时出错:等待forwardOut超时”。

在我的情况下,解决方案是将“ localhost”放在顶部的主机名字段中,而不是主机IP。