MongoDB v3.4(Ubuntu16.04)启动监听地址与配置不符求助
问题原因分析
你遇到的这个情况其实是MongoDB 3.4版本的默认行为导致的:
- 当你直接用
mongod命令启动且没有通过--config参数指定配置文件时,MongoDB并不会自动加载/etc/mongod.conf这个文件,它只会使用内置的默认配置。 - 在MongoDB 3.4版本中,默认的
bindIp值是0.0.0.0(也就是监听所有可用网络接口),而不是你配置文件里的127.0.0.1——配置文件里的设置只有在被显式加载时才会生效。
解决办法
针对这个问题,你可以选择以下几种方式来解决:
1. 启动时显式加载配置文件
把配置文件路径通过--config参数传入启动命令,这样MongoDB就会读取你在/etc/mongod.conf里设置的bindIp:
mongod --config /etc/mongod.conf --fork --logpath /var/log/mongodb/mongod.log
注意:如果你的
/etc/mongod.conf里已经配置了logpath和dbpath,命令行里的这两个参数可以省略;如果同时指定,命令行参数会覆盖配置文件中的对应设置。
2. 启动时直接指定bindIp参数
如果你不想加载整个配置文件,也可以在启动命令里直接加上--bind_ip参数来指定监听地址:
mongod --fork --logpath /var/log/mongodb/mongod.log --dbpath /var/lib/mongodb --bind_ip 127.0.0.1
3. 使用系统服务启动(推荐)
在Ubuntu 16.04上,MongoDB通常会自带systemd服务配置,用系统服务启动的话会自动加载/etc/mongod.conf,操作更规范也更便于管理:
# 启动服务 sudo systemctl start mongod # 设置开机自启 sudo systemctl enable mongod
内容的提问来源于stack exchange,提问作者mdv
相关产品推荐
相关产品推荐

