【发布时间】:2021-06-18 03:45:57
【问题描述】:
我在 windows 8.1 上安装了 mongodb
然后我使用命令提示符导航到 D:\mongodb\bin
然后我使用这个命令
mongod.exe --config D:\mongodb\mongodb.conf
mongodb.conf的内容
bind_ip = 127.0.0.1,100.100.100.100
port = 3979
quiet = true
dbpath = D:\mongodb\data\db
logpath = D:\mongodb\data\log\mongodb.log
logappend = true
journal = true
但是 mongod 没有启动。如果我使用 mongod.exe(不使用配置文件),它可以完美运行
更新:
我的意图很简单:将默认端口更改为另一个端口,并且只允许来自某些 IP 地址的访问。
我使用的是 Ubuntu 的配置。感谢 Panda_Claus 指出了新的配置。
所以我把配置改成
net:
bindIp: 127.0.0.1,100.100.100.100
port: 3979
问题是,当我用这个配置启动 mongod 时,它出错然后自动退出
ERROR: listen(): bind() failed errno:10049 The requested address is not valid in its context. for socket: 100.100.100.100:3979
那么如何只允许本地主机和特定的IP地址(在本例中为100.100.100.100)连接到mongodb?
更新 2
我使用了maerics的配置
net:
bindIp: 127.0.0.1,192.168.10.104
port: 3979
storage:
dbPath: D:\mongodb\data\db
journal:
enabled: true
systemLog:
destination: file
path: D:\mongodb\data\log\mongodb.log
quiet: true
logAppend: true
有趣的是,使用这个,我只能连接到本地机器上的db,其他局域网计算机无法连接
192.168.10.104:3979.
但是,如果我删除
systemLog:
destination: file
path: D:\mongodb\data\log\mongodb.log
quiet: true
logAppend: true
局域网中的其他计算机都可以连接到数据库。
【问题讨论】:
-
除了“它不启动”之外,您能提供更多信息吗?例如,是否有任何错误信息?
-
是的,当我使用第一个命令时,它没有显示任何内容,就像它没有运行一样。如果我使用第二个命令,它会显示很多消息,例如 MongoDB 开始:pid=...
-
请注意,
bind_ip配置值仅确定您的 MongoDB 服务器 侦听 的 IP 地址。它不控制来自远程 IP 的访问——这是firewall的工作。
标签: mongodb