运行app.js出现MongoDB querySrv ETIMEOUT报错 无法打印数据库列表
MongoDB querySrv ETIMEOUT 报错排查方案
错误详情
Error: querySrv ETIMEOUT _mongodb._tcp.cluster0.ye1nx.mongodb.net
该报错本质是本地环境解析MongoDB Atlas集群的SRV服务记录时超时,属于网络连通类问题,可按以下步骤逐一排查:
排查解决步骤
- 切换测试网络
先确认当前网络可正常访问公网,再关闭运行环境的VPN、代理工具,尝试切换网络(比如从公司内网切换到手机热点)后重新运行node app.js测试,部分内网会屏蔽MongoDB Atlas的相关解析请求。 - 替换公共DNS服务器
本地默认DNS无法解析SRV记录是这类报错的高发原因,将本地网络的DNS地址修改为公共DNS,比如8.8.8.8、114.114.114.114,刷新DNS缓存后再重试连接。 - 更换非SRV格式的连接字符串
登录MongoDB Atlas控制台,在集群连接配置页选择不带+srv后缀的标准版连接字符串,替换app.js中现有的MongoDB连接地址,该格式无需做SRV解析,可直接规避DNS解析类问题。 - 校验集群IP白名单配置
确认当前设备的公网IP已被添加到MongoDB Atlas集群的IP白名单中,临时测试可将白名单设置为0.0.0.0/0,确认是否是白名单限制导致的连接超时。 - 检查端口拦截规则
确认本地防火墙、操作系统安全策略或路由器配置没有屏蔽27015~27017端口的出站请求,MongoDB Atlas默认使用以上端口进行通信,端口被拦截会直接触发连接超时。
内容的提问来源于stack exchange,提问作者Jeya Kathir
相关产品推荐
相关产品推荐

