You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB 7.0本地连接失败求助:SocketException等问题

MongoDB 7.0连接失败(错误码9001/exitCode48)解决方案

1. 解决端口占用问题

  • 错误码9001表明27017端口被其他程序占用,先检查端口占用情况:
    打开命令提示符,执行:
    netstat -ano | findstr :27017
    
    记录输出中的PID值,打开任务管理器找到对应PID的进程并结束。
  • 若无法占用原端口,修改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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 19:06:02