本地MongoDB连接被拒绝:目标计算机主动拒绝连接是什么原因?
MongoDB异常断电后连接被拒绝的常见诱因
报错信息:no connection could be made because the target machine actively refused it
- MongoDB服务未正常启动
异常关机大概率会打断MongoDB服务的正常自启动流程,首先检查系统服务列表中MongoDB服务的运行状态:
Windows环境可在CMD中执行sc query MongoDB查看服务状态,若未启动执行net start MongoDB尝试手动拉起;Linux环境可执行systemctl status mongod查看运行状态。 - mongod.lock锁文件残留
MongoDB运行时会在数据存储目录生成mongod.lock文件,正常关闭时会自动删除,异常关机时该文件会残留,直接阻止MongoDB服务启动。找到MongoDB配置的dbpath对应目录,删除该锁文件后再重启服务即可解决。 - 数据文件损坏
异常断电可能导致正在写入的WiredTiger存储引擎数据文件、预写日志损坏,MongoDB启动时自检失败会主动退出。可查看MongoDB运行日志排查是否有数据损坏相关报错,确认后可先备份全量数据目录,再执行mongod --repair命令尝试修复数据。 - 默认端口被占用
异常重启后可能有其他进程占用了MongoDB默认的27017端口,导致MongoDB无法正常监听端口。Windows环境执行netstat -ano | findstr "27017",Linux环境执行lsof -i:27017即可排查端口占用情况,结束占用进程或者修改MongoDB配置文件中的监听端口即可。 - 配置文件损坏
异常关机可能导致MongoDB的mongod.cfg(Windows)或mongod.conf(Linux)配置文件损坏、内容丢失,比如bindIP配置错误、数据目录路径配置错误、端口配置错误,都会导致服务启动失败或者监听地址异常,无法对外提供连接。 - 防火墙规则重置
部分场景下异常关机可能导致系统防火墙配置被重置,原本放行的27017端口规则被清除,导致连接被拒绝。可临时关闭防火墙测试连通性,确认是防火墙问题后重新添加入站、出站端口放行规则即可。
内容的提问来源于stack exchange,提问作者nabeel imtiaz
相关产品推荐
相关产品推荐

