我正试图解决这个问题几个小时,我不知道为什么它不起作用。我用
设置了mongodmongod --dbpath /some/path
因此未设置bind_ip(mongod正在侦听所有接口)。 我将所有iptables的策略设置为ACCEPT并刷新所有规则(所以我可以确定iptables不会阻塞任何内容) - iptables -S:
-P INPUT ACCEPT -P FORWARD ACCEPT -P OUTPUT ACCEPT -N DOCKER -N DOCKER-ISOLATION -N FORWARD_IN_ZONES -N FORWARD_IN_ZONES_SOURCE -N FORWARD_OUT_ZONES -N FORWARD_OUT_ZONES_SOURCE -N FORWARD_direct -N FWDI_public -N FWDI_public_allow -N FWDI_public_deny -N FWDI_public_log -N FWDO_public -N FWDO_public_allow -N FWDO_public_deny -N FWDO_public_log -N INPUT_ZONES -N INPUT_ZONES_SOURCE -N INPUT_direct -N IN_public -N IN_public_allow -N IN_public_deny -N IN_public_log -N OUTPUT_direct
我对服务器的公共IP进行了双重和三重检查,并且100%正确。但无论我做什么,当我尝试从本地机器连接到mongo时:
mongo <servers_ip>
我得到了
MongoDB shell version: 2.6.11 connecting to: servers_ip/test 2017-08-08T18:18:30.689+0200 warning: Failed to connect to servers_ip:27017, reason: errno:113 No route to host 2017-08-08T18:18:30.690+0200 Error: couldn't connect to server servers_ip:27017 (servers_ip), connection attempt failed at src/mongo/shell/mongo.js:148 exception: connect failed
有没有人知道我还能做些什么来使这项工作?
编辑: netstat -tanp |的输出grep mongod:
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 4302/mongod
答案 0 :(得分:1)
好的,所以从我身边看来一切都很好。是我的VPS提供商 - OVH--谁阻止了端口而我无法做任何事情,但是将mongod端口更改为更低的值。感谢@nadavvadan的建议。
答案 1 :(得分:0)
您需要为数据库设置用户名和密码才能访问 使用your_db
db.createUser({ user: 'user', pwd: 'password', roles: [{ role: 'readWrite', db:'yourdb'}] })
sudo nano /etc/mongod.conf
`# network interfaces
net:
port: 27017
bindIp: 0.0.0.0
security:
authorization: 'enabled'`
打开端口27017 在端口27017上创建一个新的自定义TCP,来源:Anywhere,0.0.0.0 / 0
最后一步:重新启动mongo守护程序(mongod)
sudo service mongod restart
使用笔记本电脑上的mongo shell登录
mongo -u user -p password serverip/your_db