无法连接到MongoDB
我刚刚安装了MongoDB(标准Ubuntu版本,不是最新版本),由于某些原因我无法连接:无法连接到MongoDB,mongodb,ubuntu,openvz,Mongodb,Ubuntu,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 现在我的机器不是127.x.x.1,这是由于某些原因x.x.x.2(但我已更改配置以绑定到该地址,并尝试绑定到我的公共IP,但没有提供任何帮助) 配置: #mongodb.conf # Wh
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
我已经检查了日志,只有启动信息显示在那里
我还检查了deamon是否也在运行,它是-我甚至尝试用--fork
手动运行它
以前有没有人遇到过这个问题?或者有什么建议
Thx
更新:
重新启动后-以下是日志:
** 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)
否则,如果希望它也在本地主机上侦听,则应删除配置文件中的bind\u ip
设置
更新检查您的防火墙配置。由于您连接到外部IP,因此可以将其配置为阻止,甚至可以从本地框进行阻止。默认情况下,运行
mongo
控制台命令将在本地主机上查找mongodb,因此,127.0.0.1
IP是您的本地环回。此外,默认配置是ig formongod
应该在本地主机上可用。最好现在就开始这样做,除非您已启用身份验证。请确保您已启用身份验证,或者您的数据库正在公共ip上公开运行
如果要连接到本地主机或默认配置以外的主机,请执行以下操作:
mongo <host>
mongo
我通过注释掉我的/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
以下步骤可能对您有所帮助:
5最后,只需调用命令“mongo”我也有同样的问题,只是因为这个愚蠢的错误 首先删除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
用于收听所有可用IP
bindIp: [127.0.0.1,10.128.0.2]
重新启动mongodb
sudo service mongod start
希望这个答案对/etc/mongod.conf中的某人有所帮助
# network interfaces
net:
port: 27017
#bindIp: 127.0.0.1
bindIp: privateIp
我变了
bindIp:127.0.0.1
到
bindIp:0.0.0.0
都是端口。是的,我知道这很危险,但我是在内部网络上运行的
顺便说一句,我在Ubuntu18下运行时,注释掉了
#bindIp:127.0.0.1
对我不起作用。另一种方法是添加mongod选项param bind\u ip
mongod -–help
--绑定\u ip arg以逗号分隔的ip地址列表到
默认情况下在本地主机上侦听
--绑定\u ip\u所有绑定到所有ip地址
mongod --fork --logpath /var/log/mongodb.log --dbpath /data/db --bind_ip 0.0.0.0
如果您使用的是windows,请运行服务 然后检查mongoDB服务器是否正在运行,如果没有运行,请启动它 默认情况下,mongoDB服务器在localhost:27017上运行。
单击localhost:27017首先创建管理员用户。当
mongod
正在运行但尚未“正常”运行时,我遇到了这个问题。我猜可能有更好的方法等待安装后出现,但添加sleep 10
似乎可以解决这个问题
一种稍微不太像穴居人的方法可能是tail-f
它的日志文件,并查找它告诉您它正在您指定的接口上侦听的事件
locallog=/var/log/mongodb/mongod.log
sudo-u mongodb touch“$log”
服务mongod启动&
启动器=$!
尾部-0f“$log”|
grep-q“端口:27017”
等待“$launcher”
睡眠1
最后的睡眠
是一种有点绝望的行为;它记录启动后似乎需要一段时间,直到它正确地启动并收听
另请参见添加了一个更新以检查您的防火墙配置,因为您说您已经尝试在命令行中指定了IP。目前没有防火墙配置,因为它是一个空服务器。您确定吗?如果
netstat-a
显示您正在监听27017,但您无法连接到27017(通过mongo或telnet),可能有防火墙。sudo iptables-L-n
检查规则。啊-我检查过了,它似乎没有监听任何端口…有什么想法吗?尝试重新启动它,确保日志没有抛出任何错误。我应该补充一点,我尝试过mongo 199.21.114.XX:xxxxxxUpdate-使用Docker和Docker-Compose。您保存了我的Life!非常感谢!同上——好吧,也许不是我的生活,但肯定是我的一个小时:)这对我很有效。之后不得不重新启动mongod。sudo服务mongodb重启。经过漫长的旅程,我终于得到了你的答案。谢谢:)在这个答案对我有用之前,我在这里尝试了其他一些答案。删除mongod.lock或允许在ip表中的端口27017上输入和输出是否有可能在将来产生负面影响?注释掉#bind_ip=127.0.0.1
将向任何人/任何地方打开它。确保您的防火墙/iptables已过滤未经请求的连接和/或在/etc/mongod.conf
中添加安全:授权:“已启用”
。任何人/任何地方都可以向您的数据库写入数据。我想您的意思是sudo服务mongodb start
。此外,括号或逗号后的空格也不适用于我。所以我的是这样的:bind_ip:127.0.0.1192.168.222.222
sudo status mongod