问题描述
我刚刚安装了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
现在我的机器不是127.x.x.1,出于某种原因是x.x.x.2(但是我已经更改了配置以绑定到该地址,并且还尝试绑定到我的公用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
我已经检查了日志,并且仅在其中显示启动信息。
我还检查了守护进程是否也在运行,它是-我什至尝试使用--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
最佳答案
您必须通过运行mongo 199.21.114.XX
来指定IP(199.21.114.XX)。
否则,如果您还希望它也在localhost上侦听,则应在配置文件中删除bind_ip
设置。
更新检查您的防火墙配置。由于您要连接到外部IP,因此可以将其配置为阻止,即使在本地设备中也是如此。
次佳答案
我通过注释掉/etc/mongod.conf
文件中的以下行来解决此问题。
# Listen to local interface only. Comment out to listen on all interfaces.
#bind_ip = 127.0.0.1
您需要在重新启动mongod进程后遵循此配置更改。
sudo service mongod restart
第三种答案
sudo rm /var/lib/mongodb/mongod.lock
第四种答案
我有同样的问题,只是因为愚蠢的错误。
首先删除mongodb文件,这很好
rm -rf /tmp/mongodb-27017.sock
我在/etc/mongod.conf中犯错的地方
# network interfaces
net:
port: 27017
#bindIp: 127.0.0.1
bindIp: privateIp
代替
net:
port: 27017
bindIp: 10.1.2.4
听所有可用的ips
bindIp: [127.0.0.1,10.128.0.2]
重新启动mongodb
sudo service mongod start
希望这个答案对某人有帮助