macOS 上 MongoDB Community 8.2 启动后立即退出怎么办?
结论
现有日志无法确定 MongoDB Community 8.2 立即退出的具体原因。你提供的 mongo.log 末尾记录了 WiredTiger 关闭和 mongod 退出的过程,但没有显示触发关闭的前序错误。exitCode: 62 只能说明进程已退出,无法单凭这段末尾日志判断原因。
brew services start 显示成功,表示 Homebrew 已发出启动服务的请求,不能说明 mongod 此后一直在运行。服务退出后,mongosh 连接 127.0.0.1:27017 时收到 ECONNREFUSED,这与当时没有进程监听该端口的情况相符。
先查看退出前的日志
查看更多日志内容,重点检查关闭记录之前的 E 级别日志、Fatal、配置解析错误、路径错误或权限错误:
tail -n 200 /opt/homebrew/var/log/mongodb/mongo.log
也可以先定位关键行及其附近内容:
grep -n -E '"s":"E"|Fatal|fatal|error|ERROR|shutdown|exitCode' \
/opt/homebrew/var/log/mongodb/mongo.log | tail -n 80
如果日志已经滚动,或在重新安装过程中被覆盖,报错可能不在当前文件里。可以检查 Homebrew 服务状态和服务信息:
brew services list
brew services info mongodb-community
在前台启动以取得直接错误
先停止 Homebrew 管理的服务,避免同时运行两个 mongod 实例,然后在终端中使用现有配置以前台方式启动:
brew services stop mongodb-community
mongod --config /opt/homebrew/etc/mongod.conf
前台输出通常会显示启动失败前的错误。根据报错检查相关配置项、文件路径或访问权限。你提供的配置中,日志文件路径为 /opt/homebrew/var/log/mongodb/mongo.log,数据目录为 /opt/homebrew/var/mongodb,监听地址和端口为 127.0.0.1:27017。排查时可以核对这些值,但目前的信息不足以判断哪一项有问题。
如果前台启动成功,可以在另一个终端检查端口并尝试连接:
lsof -nP -iTCP:27017 -sTCP:LISTEN
mongosh 'mongodb://127.0.0.1:27017/'
检查路径和权限
确认配置中的目录存在,并检查当前用户是否有访问权限:
ls -ld /opt/homebrew/var/mongodb /opt/homebrew/var/log/mongodb
ls -l /opt/homebrew/var/log/mongodb/mongo.log
如果日志明确报出权限不足,再根据 Homebrew 的安装方式核对目录所有者和权限。确认数据目录状态前,不要删除 /opt/homebrew/var/mongodb,其中可能存有数据库文件;也不要仅凭 exitCode: 62 执行递归改权限操作。
注意事项
问题描述中的 macOS 版本前后不一致:开头称运行的是 15.7.3,后面又称问题在 15.6.2 上出现,之后升级到 15.7.3。记录实际的 macOS 版本、brew services info mongodb-community 的输出,以及首次错误行之前的日志,有助于进一步判断。根据目前提供的关闭日志,无法断定问题是由 macOS 升级、MongoDB 版本、配置还是文件权限引起的。
备注:内容仅供参考。
