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

被折叠的 条评论
为什么被折叠?



