我在mongod
16.04虚拟服务器上运行ubuntu
实例,侦听本地主机上的端口27017:
netstat -tulpn :
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 11639/mongod
但是本地mongo
客户端脚本无法在端口27017上连接:
MongoDB shell version v3.4.9
connecting to: mongodb://127.0.0.1:27017
W NETWORK [thread1] Failed to connect to 127.0.0.1:27017 after 5000ms milliseconds, giving up.
E QUERY [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed :
connect@src/mongo/shell/mongo.js:237:13
@(connect):1:6
exception: connect failed
一切都是本地的,所以AFAIK所有端口都打开了。
服务器日志只是说:
I NETWORK [thread1]等待端口27017上的连接
什么可以解释连接失败?
答案 0 :(得分:2)
在我看来,在使用mongo cli之前,你应该开始使用mongod。
$ sudo mongod
或
$ sudo service mongod restart
并检查mongod服务的状态
$ sudo service mongod status
然后使用mongo shell
$ mongo
答案 1 :(得分:0)
这是一个网络绑定问题。尝试连接到mongodb://localhost:27017
另外,尝试在bind_ip
启动中注释掉mongod
参数,例如
# bind_ip = 127.0.0.1
mongo
CLI是否连接?如果是这样,请仔细检查正确传递客户端脚本调用参数。
为了确保mongod
正在运行,请尝试此操作:
$ curl 'http://localhost:27017'
It looks like you are trying to access MongoDB over HTTP on the native driver port.