MongoDB 7.0本地连接失败求助:SocketException等问题
MongoDB 7.0连接失败(错误码9001/exitCode48)解决方案
1. 解决端口占用问题
- 错误码9001表明27017端口被其他程序占用,先检查端口占用情况:
打开命令提示符,执行:
记录输出中的PID值,打开任务管理器找到对应PID的进程并结束。netstat -ano | findstr :27017 - 若无法占用原端口,修改MongoDB配置文件(
mongod.cfg):找到net: port: 27017,将端口改为27018等未被占用的端口,保存后重启服务。
2. 初始化数据目录并修复权限
- 手动创建数据存储文件夹:在
mongodb/server/7.0目录下新建data/db子文件夹。 - 赋予文件夹读写权限:右键
data文件夹→属性→安全→编辑→添加,输入NETWORK SERVICE,勾选「完全控制」权限后确认。 - 用管理员权限启动命令提示符,进入MongoDB的
bin目录(示例路径:cd C:\Program Files\MongoDB\Server\7.0\bin),执行初始化命令:
确认无报错后,再尝试用mongod --dbpath "C:\Program Files\MongoDB\Server\7.0\data\db"mongosh连接。
3. 重建MongoDB系统服务
- 删除现有失效服务:管理员命令行执行:
sc delete MongoDB - 重新创建服务(替换路径为你的实际安装路径):
mongod --dbpath "C:\Program Files\MongoDB\Server\7.0\data\db" --logpath "C:\Program Files\MongoDB\Server\7.0\log\mongod.log" --install --serviceName MongoDB - 启动服务:
net start MongoDB
4. 调整Node.js连接配置
- 若修改了MongoDB端口,同步更新连接字符串:
const { MongoClient } = require('mongodb'); // 端口修改后替换为对应值,比如27018 const uri = 'mongodb://localhost:27017'; const client = new MongoClient(uri); async function connectDB() { try { await client.connect(); console.log('数据库连接成功'); } catch (err) { console.error('连接失败:', err); } finally { await client.close(); } } connectDB();
内容的提问来源于stack exchange,提问作者Muhammed Shuhaib
相关产品推荐
相关产品推荐

