【发布时间】:2013-07-11 17:58:59
【问题描述】:
我在 Ubuntu 12.04LTS 服务器上设置并运行了 MongoDB。在 localhost 和使用 macs 和 linux 机器的本地网络内的计算机上一切正常。但是,当我尝试通过 Internet 连接时,例如: 蒙戈--主机 我明白了:
MongoDB shell version: 2.4.4
connecting to: mydomain.com:27017/test
Thu Jul 11 13:22:09.102 JavaScript execution failed: Error: couldn't connect to server mydomain.com:27017 at src/mongo/shell/mongo.js:L114
exception: connect failed
但是,如果我连接为:
mongo --host mydomain.com --nodb
我明白了:
MongoDB shell version: 2.4.4
但我无法连接到任何数据库
我的 mongodb.conf 文件内容如下:
dbpath=/data/db
#where to log
logpath=/data/mongo/mongodb.log
logappend=true
bind_ip = 0.0.0.0
port = 27017
auth = false here
iptables 包含:
ACCEPT tcp -- anywhere anywhere tcp dpt:28017
ACCEPT tcp -- anywhere anywhere tcp dpt:27017
我可以连接mongodb web monitor了
/data/db 权限设置为 777
那我做错了什么?
【问题讨论】:
-
是否需要指定bind_ip?我相信 MongoDB 默认绑定所有 IP。事实上,我知道指定 0.0.0.0 用于使其绑定到主机名(不确定是否仍然如此)
-
我两种方式都没有区别
-
为了排除其他问题,能否通过其他方式外部连接服务器。比如说,SSH 还是只是 ping?
-
另外,也许尝试在 mongo 服务器上执行 netstat -a。
-
很可能您的服务器位于 NAT 之后,而不是在实际的直接互联网上,或者它有多个 IP 地址,其中一个可以在本地网络之外访问。您可能想知道是否是这种情况,然后在启动 mongod 时绑定到正确的 ip。如果您在防火墙后面,则需要配置防火墙以将端口转发到正确的服务器。一样东西。将您的数据库服务器打开到互联网永远永远不会很好。
标签: mongodb database-connection