AWS实例上的MongoDB,原因:错误:61拒绝连接

时间:2016-05-06 14:06:37

标签: mongodb amazon-web-services

Mongo 3.2版

我在AWS的实例上设置了MongoDB。

然后我将其添加到安全组,作为防火墙的例外。具体来说,我将其设置为客户TCP规则,端口27017除外。

如果我ssh到实例并执行:

  netstat -pl

我可以在输出中看到:

tcp 0 0 localhost:27017 LISTEN 2025 / mongod

所以mongodb正在运行,它正在侦听端口27017,并且防火墙添加了27017的例外。

但在我的本地Mac上,当我尝试连接时,出现错误:

  mongo ec2-154-52-32-196.compute-1.amazonaws.com:27017/vvvvv -u ccccc -p xxxx

  MongoDB shell version: 3.2.6
  connecting to: ec2-54-152-232-96.compute-1.amazonaws.com:27017/vvvvv
  2016-05-06T09:52:07.281-0400 W NETWORK  [thread1] Failed to connect to 54.152.232.96:27017, reason: errno:61       Connection refused
  2016-05-06T09:52:07.281-0400 E QUERY    [thread1] Error: couldn't connect to server       ec2-54-152-232-96.compute-1.amazonaws.com:27017, connection attempt failed :
  connect@src/mongo/shell/mongo.js:231:14
  @(connect):1:6

  exception: connect failed

我还需要做什么才能连接?

[[更新]]

所以我:

  emacs /etc/mongod.conf 

我添加0.0.0.0:

  net:
    port: 27017
    bindIp: 127.0.0.1,0.0.0.0

然后:

  service mongod restart
  mongod stop/waiting
  mongod start/running, process 5315

但我仍然得到与之前相同的错误

嗯,我不再在netstat -pl

中看到它了

4 个答案:

答案 0 :(得分:8)

从netstat输出: tcp 0 0 localhost:27017 : LISTEN 2025/mongod - 看起来它只接受来自localhost(samehost)的连接 - 你必须让它在0.0.0.0或公共IP上运行。

答案 1 :(得分:6)

签入/etc/mongod.conf

# Listen to local interface only. Comment out to listen on all interfaces.
bind_ip=127.0.0.1

注释并重新加载服务。它应该工作。

答案 2 :(得分:1)

我在/etc/mongod.conf中进行了修改

# network interfaces
    net:
      port: 27017
#  bindIp: 127.0.0.1  
      bindIp: 0.0.0.0`

然后

sudo service mongod restart


sudo netstat -utpl | grep mongo

并检查是否出现:0.0.0.0:27017,

答案 3 :(得分:0)

编写此答案,以防万一上述答案不能解决某人的问题,您还应该通过键入以下内容在Linux(在本例中为ubuntu)中添加防火墙例外

void finalUpload(){
  var data={
    "song_name":songname.text,
  };
}

希望会有所帮助。