无法连接到MongoDB

Stu*_*nar 21 ubuntu mongodb openvz

我刚刚安装了MongoDB(标准的Ubuntu版本,而不是最新的版本),由于某些原因我无法连接:

Mon Feb  6 03:11:22 Error: couldn't connect to server 127.0.0.1 shell/mongo.js:79
exception: connect failed
Run Code Online (Sandbox Code Playgroud)

现在我的机器不是127.xx1这是由于某种原因xxx2(但我已经改变了我的配置绑定到该地址,并试图绑定到我的公共IP,但没有提供任何帮助.

配置:

#mongodb.conf

# Where to store the data.

# Note: if you run mongodb as a non-root user (recommended) you may
# need to create and set permissions for this directory manually,
# e.g., if the parent directory isn't mutable by the mongodb user.
dbpath=/var/lib/mongodb

#where to log
logpath=/var/log/mongodb/mongodb.log

logappend=true

bind_ip = 199.21.114.XX
port = 27017
Run Code Online (Sandbox Code Playgroud)

我检查了日志,只显示启动信息.

我还检查过deamon也在运行,它是 - 我甚至尝试用手动运行它--fork.

有没有人遇到过这个?还是有什么建议?

谢谢

更新:

重启后 - 这是日志:

** WARNING: You are running in OpenVZ. This is known to be broken!!!

Tue Feb  7 19:43:32 [initandlisten] db version v1.8.2, pdfile version 4.5
Tue Feb  7 19:43:32 [initandlisten] git version: nogitversion
Tue Feb  7 19:43:32 [initandlisten] build sys info: Linux allspice 2.6.24-28-se$
Tue Feb  7 19:43:32 [initandlisten] *** warning: spider monkey build without ut$
Tue Feb  7 19:43:32 [initandlisten] waiting for connections on port 27017
Tue Feb  7 19:43:32 [websvr] web admin interface listening on port 28017
Run Code Online (Sandbox Code Playgroud)

Jer*_*ite 25

我通过在我的/etc/mongod.conf文件中注释掉以下行来解决了这个问题.

# Listen to local interface only. Comment out to listen on all interfaces. 
#bind_ip = 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

您需要在重新启动mongod进程时遵循此配置更改.

sudo service mongod restart
Run Code Online (Sandbox Code Playgroud)


Eve*_*man 15

您必须通过运行指定IP(199.21.114.XX)mongo 199.21.114.XX.

否则,如果您希望它也在localhost上侦听,则应删除bind_ip配置文件中的设置.

更新检查防火墙配置.由于您连接到外部IP,因此可以将其配置为阻止,甚至可以从本地框中阻止.

  • 添加了检查防火墙配置的更新,因为您说您已尝试在命令行中指定IP. (2认同)
  • 你确定吗?如果`netstat -a`显示您正在监听27017,但无法连接到27017(通过mongo或telnet),则可能存在防火墙。sudo iptables -L -n检查规则。 (2认同)

小智 10

sudo rm /var/lib/mongodb/mongod.lock
Run Code Online (Sandbox Code Playgroud)

  • 同上 - 好吧也许不是我的生活,但绝对是我的一小时:) (2认同)

Ami*_*bey 5

我也遇到了同样的问题,只是因为这个愚蠢的错误。

首先删除 mongodb 文件就可以了

rm -rf /tmp/mongodb-27017.sock
Run Code Online (Sandbox Code Playgroud)

我在 /etc/mongod.conf 中犯错的地方

# network interfaces
net:
  port: 27017
 #bindIp: 127.0.0.1
bindIp: privateIp
Run Code Online (Sandbox Code Playgroud)

代替

net:
  port: 27017
  bindIp: 10.1.2.4
Run Code Online (Sandbox Code Playgroud)

用于监听所有可用的 ip

bindIp: [127.0.0.1,10.128.0.2]
Run Code Online (Sandbox Code Playgroud)

重启mongodb

sudo service mongod start
Run Code Online (Sandbox Code Playgroud)

希望这个答案对某人有帮助