我有一台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
答案 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"