Mongodb无法连接到localhost但可以连接到localhost的IP地址。

14

如果我只使用mongo命令运行mongodb shell,会出现以下错误:

Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84

异常:连接失败

但是,如果我像这样指定本地主机的LAN IP地址:

mongo 10.10.5.90

...它连接成功了。

有什么线索吗?


1
是的,我可以 ping 127 和 localhost。 - MFB
7个回答

21

你的mongodb.conf (或者启动脚本) 是否有设置bind_ip编辑以使意思更清晰 bind_ip 设置限制了它只监听设定的IP地址。

请查看 "IP地址绑定" 部分: http://www.mongodb.org/display/DOCS/Security+and+Authentication

如果没有,您是否有任何防火墙规则阻止本地访问?这有点奇怪,但我无法想到其他原因为什么LAN IP可以工作而localhost不行。


这是我的mongodb.conf文件: bind_ip = 10.10.5.90 port = 27017 dbpath = /data/db logpath = /var/log/mongodb/mongodb.log logappend = true vvvv = true journal = true rest = true - MFB
如果想要从本地连接,可以去掉“bind_ip”设置。请参考我提供的文档。 - Eve Freeman
Wes,谢谢。移除bind_ip设置解决了问题。 - MFB
1
你应该可以为bind_ip列出多个地址(用逗号分隔)。但对我来说无法工作。 - Rob
我在哪里可以找到我的mongodb.conf文件? - Solace
显示剩余2条评论

11

如果 mongodb 没有正确关闭,也会出现此错误。如果您输入sudo start mongodb并且每次执行都会给出一个新的进程 ID,则表示mongodb没有正确关闭。要解决此问题,请键入:

sudo rm /var/lib/mongodb/mongod.lock
sudo -u mongodb mongod -f /etc/mongodb.conf --repair 
sudo start mongodb


9
只需按照以下步骤解决此问题:
Step 1: Remove lock file.
sudo rm /var/lib/mongodb/mongod.lock

Step 2: Repair mongodb.
mongod --repair 

Step 3: start mongodb.
sudo start mongodb 
or
sudo service mongodb start

Step 4: Check status of mongodb.
sudo status mongodb 
or   
sudo service mongodb status

Step 5: Start mongo console.
mongo

在Ubuntu中,MongoDB的服务名称是mongod而不是mongodb。 - GeekAb

1

我更喜欢配置

net:
  bindIpAll: true

或者

net:
  bindIp: localhost

上面的配置允许来自远程计算机的连接(除非被防火墙阻止),第二个配置仅允许来自本地计算机的连接。
我认为像这样的配置
net:
  bindIp: 10.10.5.90

仅在具有多个网络接口的计算机上才有意义。

注意,现在已经是2023年,增加这一点是有意义的。

net:
  ipv6: true

或者 mongod --ipv6 ...,因为IPv6默认是禁用的,但IPv6越来越普遍。


0

对于在VMWare windows上使用MongoDB Compass的人:

C:\Program Files\MongoDB\Server\5.0\bin是默认的Mongo服务器目录。 您可以在mongod.cfg中更改bindIp和端口。

还要确保检查mongo服务器服务是否正在运行: win + r > services.msc > MongoDB Server (MongoDB) > 右键单击 > 启动。

希望能节省一些时间,希望能有所帮助。


0

我在启动Mongo时,将localhost与我在bind_ip中拥有的IP一起添加,这解决了我的问题,例如: bin/mongod --dbpath data --logpath mongo.log --fork --bind_ip localhost,10.100.1.2


-2

按照以下方式编辑您的mongod.conf文件

bindIp: 0.0.0.0,localhost

这对我有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接