mongodb - 在 Mongod 3.6.5 版本的 bindIp 配置选项中使用多个 IP 地址时无法运行 MongoDB 服务器
问题描述
我试图在 bindIp 配置选项中使用多个 IP 地址,保存配置更改后,mongodb 服务器将无法启动。同样的事情在 MongoDB 3.4 版中工作
这是配置设置:
# network interfaces
net:
port: 36784
bindIp: 127.0.0.1,10.0.0.226
这里 10.0.0.226 是 EC2 实例的私有 IP 地址。
相同类型的配置在 MongoDB 的早期版本中更具体地在 v3.4 中工作
如果我使用 bindIp 到 0.0.0.0,那么它当然允许远程连接到所有 IP 地址。
重新启动服务器后,我收到以下错误:
mongod.service - High-performance, schema-free document-oriented database
Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2018-06-25 05:36:45 UTC; 15s ago
Docs: https://docs.mongodb.org/manual
Process: 1570 ExecStart=/usr/bin/mongod --config /etc/mongod.conf (code=exited, status=48)
Main PID: 1570 (code=exited, status=48)
Jun 25 05:36:45 ip-10-0-1-69 systemd[1]: Stopped High-performance, schema-free document-oriented database.
Jun 25 05:36:45 ip-10-0-1-69 systemd[1]: Started High-performance, schema-free document-oriented database.
Jun 25 05:36:45 ip-10-0-1-69 systemd[1]: mongod.service: Main process exited, code=exited, status=48/n/a
Jun 25 05:36:45 ip-10-0-1-69 systemd[1]: mongod.service: Unit entered failed state.
Jun 25 05:36:45 ip-10-0-1-69 systemd[1]: mongod.service: Failed with result 'exit-code'.
以下是日志文件内容:
2018-06-25T05:07:38.842+0000 I CONTROL [initandlisten] now exiting
2018-06-25T05:07:38.842+0000 I CONTROL [initandlisten] shutting down with code:48
2018-06-25T05:13:43.192+0000 I CONTROL [main] ***** SERVER RESTARTED *****
2018-06-25T05:13:43.201+0000 I CONTROL [initandlisten] MongoDB starting : pid=1390 port=36784 dbpath=/var/lib/mongodb 64-bit host=ip-10-0-1-69
2018-06-25T05:13:43.201+0000 I CONTROL [initandlisten] db version v3.6.5
2018-06-25T05:13:43.201+0000 I CONTROL [initandlisten] git version: a20ecd3e3a174162052ff99913bc2ca9a839d618
2018-06-25T05:13:43.201+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016
2018-06-25T05:13:43.201+0000 I CONTROL [initandlisten] allocator: tcmalloc
2018-06-25T05:13:43.201+0000 I CONTROL [initandlisten] modules: none
2018-06-25T05:13:43.201+0000 I CONTROL [initandlisten] build environment:
2018-06-25T05:13:43.201+0000 I CONTROL [initandlisten] distmod: ubuntu1604
2018-06-25T05:13:43.201+0000 I CONTROL [initandlisten] distarch: x86_64
2018-06-25T05:13:43.201+0000 I CONTROL [initandlisten] target_arch: x86_64
2018-06-25T05:13:43.201+0000 I CONTROL [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1,10.0.0.226", port: 36784 }, processManagement: { timeZoneInfo: "/usr/share/zoneinfo" }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } }
2018-06-25T05:13:43.201+0000 E STORAGE [initandlisten] Failed to set up listener: SocketException: Cannot assign requested address
2018-06-25T05:13:43.201+0000 I CONTROL [initandlisten] now exiting
2018-06-25T05:13:43.201+0000 I CONTROL [initandlisten] shutting down with code:48
我浏览了官方文档,找不到任何弃用通知。
可能是什么问题?
谢谢
解决方案
当我从日志中正确理解这一行时
2018-06-25T05:13:43.201+0000 I CONTROL [initandlisten] MongoDB starting : pid=1390 port=36784 dbpath=/var/lib/mongodb 64-bit host=ip-10-0-1-69
主机的 ip 是10.0.1.69
和不是10.0.0.226
。这将解释错误。
推荐阅读
- python - Python: shapefile.Reader, how to set up .iloc?
- java - Java Map Adapter 等效于 Python 中使用 wsdl
- python - jinja2.exceptions.TemplateNotFound: index.html for simple hello world program in flask
- asp.net - Visual Studio 2019 can debug one web site but not another on the same server... why?
- node.js - 不获取 req 标头授权令牌
- github - How to identify github user with ssh key?
- scrapy - how can i use random useragent everytitme when i send resquest?
- firebase - Flutter/Firebase - 正确的轨道?
- reactjs - D3 和 React 中的单轴缩放
- mysql - 需要找到平均代码为“A”且在 2021 年 5 月交付的三个最昂贵的路径