运行mongo.exe连接MongoDB时遭遇网络连接失败错误求助
解决MongoDB连接时的SocketException(RECV_ERROR)问题
看到你遇到的这个MongoDB连接错误——连接被主机软件中止,还抛出了SocketException,我之前也踩过这个坑!本质上是你的mongo shell没法和本地的MongoDB服务建立正常通信,大概率是服务没启动、端口被占用或者配置出了问题。先把你遇到的错误信息贴出来方便对照:
C:\Program Files\MongoDB\Server\3.6\bin>mongo.exe MongoDB shell version v3.6.4 connecting to: mongodb://127.0.0.1:27017 2018-05-13T21:36:21.154+0530 I NETWORK [thread1] Socket recv() An established connection was aborted by the software in your host machine. 127.0.0.1:27017 2018-05-13T21:36:21.156+0530 I NETWORK [thread1] SocketException: remote: (NONE):0 error: SocketException socket exception [RECV_ERROR] server [127.0.0.1:27017] 2018-05-13T21:36:21.157+0530 E QUERY [thread1] Error: network error while attempting to run command 'isMaster' on host '127.0.0.1:27017' : connect@src/mongo/shell/mongo.js:251:13 @(connect):1:6 exception: connect failed
接下来是具体的排查和解决步骤:
检查MongoDB服务状态
这是最常见的原因:打开Windows服务管理器(按下Win+R,输入services.msc回车),找到名为MongoDB的服务,查看它的状态是否为“正在运行”。- 如果没运行,右键点击“启动”;
- 如果启动失败,去MongoDB的日志目录(默认是
data/log,或者配置文件里指定的logPath)打开mongod.log,里面会有启动失败的具体原因(比如dbPath不存在、权限不足)。
检查27017端口是否被占用
MongoDB默认用27017端口,如果这个端口被其他程序占了,服务就没法正常监听。打开命令提示符,输入:netstat -ano | findstr :27017如果返回结果,记下对应的PID,打开任务管理器(详细信息 tab)找到这个PID对应的进程:
- 如果不是MongoDB的进程,右键结束它,然后重启MongoDB服务;
- 如果是MongoDB的进程但服务状态异常,先结束进程再重新启动服务。
验证MongoDB配置文件
打开你的mongod.cfg配置文件(默认在C:\Program Files\MongoDB\Server\3.6\bin目录下),检查几个关键配置:bindIp:确保设置为127.0.0.1(允许本地连接)或者0.0.0.0(允许所有IP),不要设置成其他非本地IP;port:确认是27017,如果改了端口,连接时要加上--port 新端口号;dbPath和logPath:确保这两个路径存在,并且MongoDB服务有读写权限(比如不要把dbPath放在C盘根目录,可能权限不够)。
手动启动mongod服务排查问题
如果服务启动失败,直接手动启动能看到更直观的错误信息:打开命令提示符,切换到MongoDB的bin目录:cd "C:\Program Files\MongoDB\Server\3.6\bin"然后执行:
mongod.exe --config "C:\Program Files\MongoDB\Server\3.6\bin\mongod.cfg"这时控制台会输出启动过程中的所有日志,直接就能定位问题(比如路径不存在、权限错误)。
检查防火墙设置
本地防火墙可能会阻止mongo shell和mongod服务的通信:- 暂时关闭Windows防火墙试试,如果能正常连接,就去防火墙的“允许应用通过防火墙”设置里,添加
mongod.exe和mongo.exe作为允许的程序; - 也可以直接添加27017端口的入站规则,允许本地连接。
- 暂时关闭Windows防火墙试试,如果能正常连接,就去防火墙的“允许应用通过防火墙”设置里,添加
按照这些步骤排查下来,基本就能解决这个连接问题了。
内容的提问来源于stack exchange,提问作者sridhar mohanty
相关产品推荐
相关产品推荐

