在Ubuntu服务器上远程访问MongoDB时出错

时间:2016-05-11 20:47:06

标签: linux mongodb ubuntu remote-access

我有一台Ubuntu 14.04 Linux服务器,MongoDB 3.2.4在Digital Ocean上作为Droplet运行(一键式应用程序)。

Ping服务器可以正常工作(发布后会破坏Droplet):

ping 198.199.125.101

我创建了数据库test和用户:

db.createUser({"user": "test", "pwd": "test", "roles": ["dbOwner"]})

mongod.conf中,我更改了bindIp: 0.0.0.0并重新启动了mongoDB

我禁用了防火墙并重启了服务器。仅仅是为了测试,只是为了证明iptables不是问题(不要在常规服务器上这样做):

sudo ufw disable

问题是我无法远程访问mongo数据库

mongo 198.199.125.101:27021/test -u "test" -p "test"

错误消息(拒绝连接):

MongoDB shell version: 3.2.0
connecting to: 198.199.125.101:27021/test
2016-05-11T22:05:35.876+0200 W NETWORK  [thread1] Failed to connect to 198.199.125.101:27021, reason: errno:61 Connection refused
2016-05-11T22:05:35.879+0200 E QUERY    [thread1] Error: couldn't connect to server 198.199.125.101:27021, connection attempt failed :
connect@src/mongo/shell/mongo.js:226:14
@(connect):1:6

exception: connect failed

1 个答案:

答案 0 :(得分:2)

首先在mongo机器上运行netstat以验证端口27021是否已打开。 netstat -anp应该这样做。

然后做" telnet 127.0.0.1 27021"确保它是开放的。

一旦确定端口已打开,请使用telnet 198.199.125.101 27021验证您是否可以通过端口27021连接到mongo计算机。如果可以,则表明它与您的应用程序有关。如果没有,则会阻止连接。一些防火墙或什么的。你在aws吗?

根据netstat,您可以尝试mongo 198.199.125.101:27017/test -u "test" -p "test"