Mongo C客户端连接失败报错:无法找到合适服务器(连接被拒)
解析Mongo C客户端连接报错:
No suitable servers found (<code>serverSelectionTryOnce</code> set): [connection refused calling ismaster on 'mongodb:27017']的原因 这个报错本质就是你的C客户端压根连不上目标MongoDB服务,我帮人排查过好多次,常见原因大概有这几种:
- MongoDB服务没启动:这是最容易踩的坑——你以为服务在跑,其实它可能启动失败或者压根没开。先去MongoDB所在机器上确认进程状态:Linux用
ps aux | grep mongod,Windows去服务列表里找MongoDB服务看看是不是“正在运行”。如果没启动,先把服务拉起来再试。 - 端口不对或被占用:报错里用的是默认端口27017,但如果你的MongoDB配置了自定义端口,客户端还连27017肯定不行。另外,这个端口也可能被其他程序抢了,用
netstat -tulpn | grep 27017(Linux)或者netstat -ano | findstr 27017(Windows)查一下端口占用情况。 - 网络/防火墙挡住了:客户端机器和MongoDB服务器之间的网络不通,比如防火墙规则拦截了27017端口。先试试
ping mongodb(这里的mongodb是你配置的主机名)能不能通,再用telnet mongodb 27017或者nc -zv mongodb 27017测试端口是否能正常访问。 - 主机名解析失败:客户端机器没法把
mongodb这个主机名转换成正确的IP地址。你可以先换成MongoDB服务器的真实IP地址再尝试连接,或者检查本地hosts文件有没有配置mongodb对应的IP映射。 - MongoDB限制了访问IP:如果MongoDB配置文件里的
bindIp设成了127.0.0.1(只允许本地访问),那外部客户端肯定连不上。需要修改配置文件的bindIp为0.0.0.0(允许所有IP访问)或者客户端机器的IP,然后重启MongoDB服务。
内容的提问来源于stack exchange,提问作者Alex Katebi
相关产品推荐
相关产品推荐

