M1 Mac下MongoDB连接错误(ECONNREFUSED)如何解决?
解决M1 Mac上mongosh连接MongoDB出现ECONNREFUSED的问题
这个错误说明MongoDB服务未在本地27017端口运行,或者端口被占用。以下是针对性的排查和解决步骤:
1. 检查MongoDB服务状态
- 用Homebrew查看服务运行状态:
找到brew services listmongodb-community条目,确认状态是否为started。 - 如果未启动,手动启动服务:
brew services start mongodb-community - 若启动失败,查看日志定位问题:
(M1 Mac上Homebrew默认路径为tail -f /opt/homebrew/var/log/mongodb/mongo.log/opt/homebrew,Intel Mac为/usr/local,根据机型调整)
2. 检查27017端口是否被占用
- 列出占用27017端口的进程:
lsof -i :27017 - 如果有无关进程占用,杀掉对应进程(替换
<PID>为输出中的进程号):kill -9 <PID>
3. 绕过Homebrew服务,手动启动MongoDB
- 使用配置文件启动:
mongod --config /opt/homebrew/etc/mongod.conf - 若配置文件丢失,直接指定数据目录启动:
启动成功后,新开终端窗口执行mongod --dbpath /opt/homebrew/var/mongodbmongosh尝试连接。
4. 检查mongosh连接参数
- 直接指定完整连接字符串,避免默认配置干扰:
mongosh mongodb://127.0.0.1:27017 - 尝试用
localhost替代IP地址:mongosh mongodb://localhost:27017
5. 排查数据目录权限问题
- 检查数据目录的权限:
正常情况下,所有者应为ls -ld /opt/homebrew/var/mongodb_mongodb:_mongodb。 - 若权限错误,修改所有权:
之后重新启动MongoDB服务。sudo chown -R _mongodb:_mongodb /opt/homebrew/var/mongodb
内容的提问来源于stack exchange,提问作者Dani Thomas
相关产品推荐
相关产品推荐

