首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >除非设置为0.0.0.0,否则MongoDB bind_ip将无法工作。

除非设置为0.0.0.0,否则MongoDB bind_ip将无法工作。
EN

Stack Overflow用户
提问于 2015-06-17 06:41:32
回答 14查看 79.2K关注 0票数 41

我真的试过了,甚至重新安装了MongoDB。

ip错误: bind()失败errno:99不能为套接字分配请求的地址也是一样

如果将bind_ip设置为: 0.0.0.0或127.0.0.1,则可以工作。

代码语言:javascript
运行
复制
$ sudo service mongod start
mongod start/running, process 30040
$ sudo service mongod restart
mongod stop/waiting
mongod start/running, process 29704
$ mongo --port 19708
MongoDB shell version: 3.0.3
connecting to: 127.0.0.1:19708/test
>

如果将bing_ip设置为:127.0.0.1,192.118.96.10,42.112.36.110,则无法工作。

代码语言:javascript
运行
复制
$ sudo service mongod start
mongod start/running, process 29969
$ sudo service mongod restart
stop: Unknown instance:
mongod start/running, process 29766
$ mongo --port 19708
MongoDB shell version: 3.0.3
connecting to: 127.0.0.1:19708/test
2015-06-17T06:32:34.625+0000 W NETWORK  Failed to connect to 127.0.0.1:19708
reason: errno:111 Connection refused
2015-06-17T06:32:34.627+0000 E QUERY
Error: couldn't connect to server   127.0.0.1:19708 (127.0.0.1), connection attempt failed
at connect (src/mongo/shell/mongo.js:181:14)
at (connect):1:6 at src/mongo/shell/mongo.js:181
exception: connect failed

地点:

代码语言:javascript
运行
复制
$ which mongod
/usr/bin/mongod
$ which mongo
/usr/bin/mongo

/etc/mongod.conf中的配置

代码语言:javascript
运行
复制
dbpath=/var/lib/mongodb

logpath=/var/log/mongodb/mongod.log

logappend=true

port = 19708

# ips, eg:
# private ip for mongodb server: 192.118.96.10
# public ip for remote app server: 42.112.36.110

bind_ip = 127.0.0.1,192.118.96.10,42.112.36.110

auth = true

提前谢谢。

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2015-06-17 07:52:44

编辑:--我不知道我是简单地错了答案还是bind_ip的行为被改变了,但是可以绑定到多个不同的IP上

代码语言:javascript
运行
复制
bind_ip:127.0.0.1,10.0.0.1,8.8.8.8

因此,最有可能的是,被指定绑定到的IP地址之一在所讨论的机器上并不存在。

您只能将mongod绑定到一个IP上,0.0.0.0是“侦听所有可用网络接口”的别名。

所以要么用

代码语言:javascript
运行
复制
bind_ip=127.0.0.1

要侦听回循环接口

代码语言:javascript
运行
复制
bind_ip=<someIP>

只听IP的

代码语言:javascript
运行
复制
bind_ip=0.0.0.0

收听系统上所有可用的IP。

如果您需要听几个特定的If,很有可能您的系统设计在某种程度上被搞砸了。

票数 43
EN

Stack Overflow用户

发布于 2016-06-07 08:41:13

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

有评论的线路和空间问题。

我做错了什么

代码语言:javascript
运行
复制
# network interfaces
net:
  port: 27017
 #bindIp: 127.0.0.1
bindIp: privateIp

而不是

代码语言:javascript
运行
复制
net:
  port: 27017
  bindIp: 10.1.2.4

用于绑定到倍数ips。

代码语言:javascript
运行
复制
bindIp: [127.0.0.1,10.128.0.2]

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

票数 16
EN

Stack Overflow用户

发布于 2018-01-26 20:55:26

Mongo 3.6.2社区

我的解决方案是编辑/etc/mongod.conf的部分。

代码语言:javascript
运行
复制
# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1,192.168.1.240   # No brackets, No spaces, only comma separated

#security

然后保存并执行此操作以重新启动和验证服务:

代码语言:javascript
运行
复制
> service mongod restart
> service mongod status

这里没有失败,现在确认有人在监听:

代码语言:javascript
运行
复制
> netstat -a |grep :27017

tcp   0   0  yourhostname:27017   0.0.0.0:*     LISTEN
tcp   0   0  localhost:27017      0.0.0.0:*     LISTEN

现在使用您喜欢的Mongo工具或命令行进行连接。

/etc/mongod.conf中不同格式的一些结果

  • 逗号和空格只导致第一个IP被绑定。
  • 空间分隔符只导致第一个IP被绑定。
  • 围困导致启动单神失败
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30884021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档