Brew安装的MongoDB-community启动失败,mongosh连接被拒绝
解决brew安装MongoDB启动失败及连接被拒问题
问题现象
- 执行
brew services start mongodb/brew/mongodb-community后,服务处于错误状态:mongodb-community error 4 root ~/Library/LaunchAgents/homebrew.mxcl.mongodb-community.plist - 运行
mongosh报错:Current Mongosh Log ID: 66a0ead8814d4423f0001234 Connecting to: mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.2.12 MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017 - 配置文件内容:
systemLog: destination: file path: /usr/local/var/log/mongodb/output.log logAppend: true storage: dbPath: /usr/local/var/mongodb net: port: 27017 bindIp: 127.0.0.1, ::1 ipv6: true output.log文件为空
排查与解决步骤
1. 检查数据目录与日志目录权限
日志为空大概率是MongoDB无权限写入日志或数据目录,执行以下命令查看权限:
ls -ld /usr/local/var/mongodb /usr/local/var/log/mongodb
若目录所有者不是当前用户或mongodb用户,执行命令修改权限:
sudo chown -R $(whoami):$(whoami) /usr/local/var/mongodb /usr/local/var/log/mongodb
系统若存在mongodb用户,也可使用:
sudo chown -R mongodb:mongodb /usr/local/var/mongodb /usr/local/var/log/mongodb
2. 手动启动MongoDB查看实时错误
先停止brew托管的服务:
brew services stop mongodb/brew/mongodb-community
直接手动启动MongoDB,终端会输出详细错误信息:
mongod --config /usr/local/etc/mongod.conf
根据终端提示针对性修复(如文件权限、配置语法错误等)。
3. 检查端口占用情况
确认27017端口是否被其他进程占用:
lsof -i :27017
若有输出,说明端口被占用,杀掉对应进程(替换<PID>为进程ID):
kill -9 <PID>
也可修改MongoDB配置文件中的port字段,更换为未占用端口。
4. 重建LaunchAgent配置文件
若plist文件损坏导致服务启动失败,删除现有plist并重启服务:
rm ~/Library/LaunchAgents/homebrew.mxcl.mongodb-community.plist brew services restart mongodb/brew/mongodb-community
内容的提问来源于stack exchange,提问作者Emanuele
相关产品推荐
相关产品推荐

