MongooseServerSelectionError:MongoDB数据库连接超时问题求助
解决MongooseServerSelectionError: Server selection timed out问题
针对你遇到的Mongoose连接MongoDB超时,但Compass和Shell能正常连接的情况,可按以下步骤排查:
版本兼容性检查
报错中commonWireVersion: 0通常提示Mongoose与MongoDB版本不兼容。先查看MongoDB版本:mongod --version若MongoDB为6.0+版本,需搭配Mongoose 6.0及以上版本。执行升级命令:
npm install mongoose@latest调整连接配置参数
显式配置连接超时时间与必要参数,避免默认值不足导致超时:const mongoose = require('mongoose'); async function connectDB() { try { await mongoose.connect('mongodb://127.0.0.1:27017/dev', { serverSelectionTimeoutMS: 10000, // 延长超时至10秒 useNewUrlParser: true, useUnifiedTopology: true }); console.log('数据库连接成功'); } catch (err) { console.error('连接失败:', err); } } connectDB();排查Node.js代理设置
若环境存在代理,可能导致Node.js无法访问本地MongoDB。在代码开头添加禁用代理的配置:process.env.NO_PROXY = 'localhost,127.0.0.1';验证MongoDB绑定IP
打开MongoDB配置文件(如mongod.conf),确认bindIp设置为127.0.0.1或0.0.0.0(允许所有IP访问),修改后重启MongoDB服务。检查防火墙/安全软件拦截
本地防火墙或杀毒软件可能拦截Node.js访问27017端口。暂时关闭相关软件测试,若恢复正常,需添加Node.js程序或27017端口的放行规则。
内容的提问来源于stack exchange,提问作者Pato P
相关产品推荐
相关产品推荐

