MongoDB绑定ip元';除非设置为0.0.0.0,否则不工作
我真的试过了,甚至重新安装了MongoDB 这对我来说是一样的 如果将bind_ip设置为:0.0.0.0或127.0.0.1,则该选项有效MongoDB绑定ip元';除非设置为0.0.0.0,否则不工作,mongodb,Mongodb,我真的试过了,甚至重新安装了MongoDB 这对我来说是一样的 如果将bind_ip设置为:0.0.0.0或127.0.0.1,则该选项有效 $ 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
$ 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.1192.118.96.10,42.112.36.110
$ 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
位置:
$ which mongod
/usr/bin/mongod
$ which mongo
/usr/bin/mongo
/etc/mongod.conf中的配置
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
提前感谢。编辑:我不知道我的回答是否有误,或者绑定ip的行为是否发生了变化,但可以绑定到多个不同的ip
bind_ip:127.0.0.1,10.0.0.1,8.8.8.8
因此,最有可能的情况是,分配给mongod绑定的一个IP地址在相关计算机上不存在
您只能将
mongod
绑定到一个IP,其中0.0.0
是“侦听所有可用网络接口”的别名
所以要么使用
bind_ip=127.0.0.1
收听回圈接口或
bind_ip=<someIP>
bind_ip=0.0.0.0
侦听系统上所有可用的IP
如果你需要听几个特定的IP,很可能你的系统设计出了问题。嘿,我使用的是MongoDB shell版本:3.2.6
bindIP = 127.0.0.1,192.168.0.50
bindIP = [127.0.0.1,192.168.0.50]
bind_ip = 192.168.6.38
不工作,我已使用此命令编辑mongod.conf
sudo -i gedit /etc/mongod.conf file
并将bind_ip=0.0.0.0更改为bind_ip=192.168.6.38它工作正常….我也遇到了同样的问题,只是因为这个愚蠢的错误 存在线条和空间问题 我做错了什么
# network interfaces
net:
port: 27017
#bindIp: 127.0.0.1
bindIp: privateIp
而不是
net:
port: 27017
bindIp: 10.1.2.4
用于绑定到多个IP
bindIp: [127.0.0.1,10.128.0.2]
希望这个答案对某人有所帮助。文档中说
“您可以连接逗号分隔值列表,将mongod绑定到多个IP地址。”
所以,这不是真的…我花了好几个小时来讨论这个问题。最后,通过查看日志和谷歌搜索我在那里找到的东西,我找到了一些地方(当我在谷歌搜索“mongo bindIp Multiple”(等等)时,我得到的只是一堆像这样的页面,其中的答案毫无帮助)。 首先,/etc/mongod.conf中对我有用的块是:
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1,172.16.1.2
没有空格,没有引号,没有括号。。。但即使正确重启mongodb,也会出现错误,然后拒绝启动。我花了数小时尝试其他各种不正确的配置(这是令人沮丧的,因为这一行的正确性实际上并没有解决问题,我不知道还有另一个)
我可以通过删除mongodb套接字文件来解决这个问题:
rm /etc/mongodb-27017.sock
在这之后,跑步
systemctl restart mongod
工作没有错误。有趣的是(部分原因让我非常沮丧)在试错过程中,如果我将bindIP设置回127.0.0.1并重新启动mongod,它就工作了,这让我觉得那行行还可以,问题在于我尝试的替代条目/语法。(我最好的猜测是套接字文件中的某些内容引用了IP?我不熟悉这种编码元素。)
删除套接字后,我就可以像这样使用mongo(启用身份验证时需要选项):
这确定了127.0.0.1可以工作,也可以从我的远程应用程序(在我当前的场景中,是我正在设置的nodeb测试实例)进行连接。Mongo 3.6.2社区
我的解决方案是编辑/etc/mongod.conf的部分
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1,192.168.1.240 # No brackets, No spaces, only comma separated
#security
然后保存并执行以下操作以重新启动和验证服务:
> service mongod restart
> service mongod status
此处无故障,现在验证是否有人在侦听:
> 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
- []环绕导致无法启动mongod
bindIp=[127.0.0.1,11.22.33.44]
然后我打开了Auth:
security:
authorization: "enabled"
重新启动mongod(在Ubuntu 18.04上)时出现错误:
标量选项“net.bindIp”必须是单个值
因此我不得不做bindIp:0.0.0.0。
也许有人知道如何将bindIp和安全性结合起来。在我的例子中,上述选项都不起作用。最终对我有效的规范是:
bind_ip= [<IP_one> <IP_two>]
(请注意,两个方向之间没有逗号)
我在Ubuntu 16.4.5(LTS)上安装了MongoDB 2.6.10这是一种仅在Ubuntu上有效的符号:(注意空格和符号)
22.33.44.99-我的服务器静态ip,88.77.55.66-我的笔记本电脑静态ip。这让我有机会从互联网上访问mongodb。不要忘记在ufw中添加一条规则-开放端口27017。对于那些仍然感到疑惑的人来说-问题不在于语法,而在于您输入的地址 为了接收远程客户端连接,您还需要添加服务器公共IP。因此,你必须补充:
- localhost
- 127.0.0.1 // Add both localhost and 127.0.0.1 to ensure local accessibility
- server_public_ip // This is important one. Add the public server IP address.
- remote_client_ip1
- remote_client_ip2
- remote_client_ip3 // As many client IPs as you want to grant access to
因此,配置应如下所示:
bind\u ip=[localhost,127.0.0.1,server\u public\u ip,remote\u client\u ip]
我们将127.0.0.1和localhost放在一起,以确保本地可访问性,因为不同的配置只能使用其中一种设置
注意:绑定ip
接受多个语法。如果出现语法错误,mongodb服务将不会运行。您可以使用服务mongodb状态检查它
千万不要将0.0.0.0放在首位,因为你可能会成为每隔几个月发生一次勒索性袭击的受害者 在ubuntu 18和mongo上为我工作--4.x.xx版:
1-在etc/mongod.conf-net add中
bindIp:“127.0.0.1,0.0.0.0”
2-然后使用pm2:
sudo apt-get update
sudo apt-get pm2
sudoapt获得更新
sudo容易得到pm2
3-启动mongod的pm2服务
pm2 start mongod
pm2启动mongod
PD:您需要删除生产场景中的0.0.0.0,请为我在ubuntu 18和mongo上工作--4.x.xx版:
1-在etc/mongod.conf-net add中
bindIp:“127.0.0.1,0.0.0.0”
2-然后使用pm2:
sudo apt-get update
sudo apt-get pm2
三,-
sudo apt-get update
sudo apt-get pm2
pm2 start mongod
bindIp: localhost
bindIp: localhost,127.0.0.1,<actual IP of my server>
bindIp: 0.0.0.0
https://www.windowscentral.com/how-open-port-windows-firewall