搭建mongodb分片时用本机IP访问router失败,但环回地址成功 问题记录

本文描述了一个在搭建MongoDB分片集群过程中遇到的问题,即MongoDB Router无法连接并报错ConnectionRefused。问题根源在于router配置文件中缺少bind_ip=0.0.0.0,导致只允许本地连接。解决方案是将bind_ip参数添加到router的配置文件中,设置为0.0.0.0,以允许所有IP访问,并重启服务。经验证,修改配置后,连接成功。

项目场景:

搭建mongodb分片集群

问题描述

router搭建完后代码连接不上,报connection refused,同时telnet对应端口也不行,
但telnet config和shard对应端口都可以通

dbw@dbw:/usr/local/mongodb/bin$ telnet 192.168.146.129 24001
Trying 192.168.146.129...
telnet: Unable to connect to remote host: Connection refused

原因分析:

mongodb如果没有设置bind_ip=0.0.0.0,则只对127.0.0.1开放,否则对所有IP开放。

通过对比config, router, shard配置发现router对应的配置中少了bind_ip=0.0.0.0这一项
0.0.0.0地址对于服务器来说指的是本机上的所有IPV4地址,如果⼀个主机有两个IP地址,192.168.1.1 和 10.1.2.1,并且该主机上的⼀个服务
监听的地址是0.0.0.0,那么通过两个ip地址都能够访问该服务。


解决方案:

在router的配置文件中也加上bind_ip=0.0.0.0,并重启

logpath=/usr/local/mongodb/mongos/log/mongos.log
logappend=true
bind_ip = 0.0.0.0
port = 24001
maxConns = 1000
configdb=test/localhost:20001,localhost:20002,localhost:20003 #指定config server集群
fork = true

dbw@dbw:/usr/local/mongodb/mongos/conf$ telnet 192.168.146.129 24001
Trying 192.168.146.129...
Connected to 192.168.146.129.
Escape character is '^]'.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值