MongoDB 7.0.5启动失败求助:MongoServerSelectionError及服务错误码48
解决MongoDB 7.0.5启动失败(Socket权限/服务错误码48)问题
核心问题定位
从日志SocketException: setup bind :: caused by :: An attempt was made to access a socket in a way forbidden by its access permissions可以确定:MongoDB无法绑定27017端口,根源是权限不足或端口被占用;server/7.0/data为空是因为服务从未正常启动,未生成数据库文件。
步骤1:检查端口27017是否被占用
- 以管理员身份打开命令提示符,执行:
netstat -ano | findstr :27017 - 如果返回结果,记下对应的PID,打开任务管理器找到该PID对应的进程并结束(可能是旧MongoDB残留进程、其他数据库软件或占用端口的程序)。
步骤2:修复目录与服务权限
- 目录权限设置:
- 找到MongoDB安装根目录(如
C:\Program Files\MongoDB\Server\7.0)及data目录,右键→属性→安全 - 添加账户
NT AUTHORITY\LocalService,赋予其完全控制权限,应用到所有子文件和文件夹。
- 找到MongoDB安装根目录(如
- 服务账户配置:
- Win+R输入
services.msc打开服务管理器,找到MongoDB Server服务,右键→属性→登录 - 选择本地系统账户,勾选“允许服务与桌面交互”,保存后尝试重启服务。
- Win+R输入
步骤3:手动启动mongod验证
- 管理员命令提示符进入MongoDB的bin目录:
cd C:\Program Files\MongoDB\Server\7.0\bin - 执行手动启动命令(指定data目录):
mongod --dbpath "C:\Program Files\MongoDB\Server\7.0\data" - 如果看到
waiting for connections on port 27017的日志,说明启动成功,此时打开新的命令提示符运行mongosh测试连接。
步骤4:重新注册MongoDB服务(若配置损坏)
- 删除现有服务:
sc delete MongoDB - 重新注册服务(指定数据目录和日志目录):
mongod --dbpath "C:\Program Files\MongoDB\Server\7.0\data" --logpath "C:\Program Files\MongoDB\Server\7.0\log\mongod.log" --install --serviceName "MongoDB" - 启动服务:
net start MongoDB
额外排查:安全软件拦截
暂时关闭Windows防火墙和第三方杀毒软件,尝试启动MongoDB服务。若能正常运行,在防火墙中添加mongod.exe和mongosh.exe的允许规则。
内容的提问来源于stack exchange,提问作者Muhammed Shuhaib
相关产品推荐
相关产品推荐

