绑定指定 IP 无法启动 MongoDB 服务

wgc*_*wgc 5 mongodb

我目前的 MongoDB 配置,

options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1,192.168.0.204", port: 27017 }, processManagement: { fork: true, pidFilePath: "/var/run/mongodb/mongod.pid", timeZoneInfo: "/usr/share/zoneinfo" }, storage: { dbPath: "/var/lib/mongo", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } }
Run Code Online (Sandbox Code Playgroud)

这是我遇到的问题

2018-02-02T19:16:32.017+0800 E STORAGE  [initandlisten] Failed to set up listener: SocketException: Cannot assign requested address
2018-02-02T19:16:32.017+0800 I CONTROL  [initandlisten] now exiting
2018-02-02T19:16:32.017+0800 I CONTROL  [initandlisten] shutting down with code:48
Run Code Online (Sandbox Code Playgroud)

Max*_*kov 1

*nix 上的第一个解决方案:您可以 bind_ip = 0.0.0.0 并使用防火墙阻止所有到端口 27017 的传入连接,除非来自本地 IP 地址。第二种解决方案

重启蒙戈:

> service mongod restart
Run Code Online (Sandbox Code Playgroud)

转到 /var/logs/mongodb 并提供日志中的信息。

让我们尝试测试 mongo,它是否使用默认选项在本地运行?

> service mongod status
Run Code Online (Sandbox Code Playgroud)

这告诉你 mongo 的状态。如果它处于非活动状态,请转到日志,在我的例子中,它 /var/logs/mongodb 从日志中获取信息。

然后,让我们尝试在没有远程 IP 选项的情况下启动 mongo。转到/etc/mongod.conf并仅在本地ip上设置选项, 然后bindIp 127.0.0.1

服务 mongod 重新启动

服务 mongod 状态

正在运行吗?如果一切正常,您需要确定您的本地 LAN IP 地址。

就我而言,它是命令,其他命令链接

LANG = c ifconfig | grep -B1 "inet addr" |awk '{ if ( $1 == "inet" ) { print $2 } else if ( $2 == "Link" ) { printf "%s:" ,$1 } }' |awk -F : '{ 打印 $1 ": " $3 }'

之后将其 ip 地址添加到 mongo conf,并使用逗号分隔选项。例如:bindIp 127.0.0.1、192.168.1.66

比保存配置并简单地重新启动 mongo

服务 mongod 重新启动