Mongodb 无法在 MacOS 上运行

问题描述 投票:0回答:1

我多年来一直在我的 mac(目前是 sonoma 14.6.1)上愉快地运行 MongoDB,通过brew安装,使用

$brew 安装 mongodb-community

(和变体)在终端中,然后使用

启动它

$brew 服务启动 mongodb/brew/mongodb-community

并收到一条好消息:

启动成功

mongodb-community
(标签:homebrew.mxcl.mongodb-community)

工作多年,通过各种升级。但是,我将 MongoDB 作为我一直在更新的 Node 应用程序的一部分运行,这迫使我升级我的 MongoDB 设置。不知怎的,现在,尽管有温暖的“成功启动”消息,但它还没有启动 MongoDB。 MongoBD 应该在端口 27017 上运行。但事实并非如此:

$ lsof -i TCP:27017

不返回任何内容。尝试通过 Robo 3T 连接到 MongoDB,或在终端中运行 mongosh,会给出以下消息的某种形式:

MongoNetworkError:连接ECONNREFUSED 127.0.0.1:27017

(来自 mongosh,在终端中)。进一步调查:

$ 酿造服务列表

返回这个:

名称状态用户文件

mongodb-community 错误 4 peter ~/Library/LaunchAgents/homebrew.mxcl.mongodb-community.plist

所以我去看plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>homebrew.mxcl.mongodb-community</string>
    <key>ProgramArguments</key>
    <array>
    <string>/usr/local/opt/mongodb-community/bin/mongod</string>
    <string>--config</string>
    <string>/usr/local/etc/mongod.conf</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <false/>
    <key>WorkingDirectory</key>
    <string>/usr/local</string>
    <key>StandardErrorPath</key>
    <string>/usr/local/var/log/mongodb/output.log</string>
    <key>StandardOutPath</key>
    <string>/usr/local/var/log/mongodb/output.log</string>
    <key>HardResourceLimits</key>
    <dict>
    <key>NumberOfFiles</key>
    <integer>64000</integer>
    </dict>
    <key>SoftResourceLimits</key>
    <dict>
    <key>NumberOfFiles</key>
    <integer>64000</integer>
    </dict>
</dict>
</plist>

看来问题出在线路上

/usr/local/opt/mongodb-community/bin/mongod

是的,该目录中有一个 mongod。尝试从终端运行它会给出以下结果:

$ mongod

非法指令:4次

我在 MongoDB 文档中看到https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-os-x/ 有一条注释:“macOS 阻止 mongod 打开”。我猜这就是这里正在发生的事情。不幸的是,文档中关于解决此问题的建议已经过时,并且通过更改权限来解决此问题的其他尝试也失败了。欢迎任何建议。

node.js mongodb macos homebrew
1个回答
0
投票

尽管收到“成功启动”消息,但升级后您在 Mac 上启动 MongoDB 时似乎遇到了问题。

可能的原因

  • 兼容性问题:最近的 macOS Sonoma 更新可能引入了与您正在使用的 MongoDB 版本的兼容性问题。
  • 权限:由于权限问题或安全设置,macOS 可能会阻止 mongod 运行。

建议的解决方案

  • 检查 MongoDB 日志:在位于
    /usr/local/var/log/mongodb/output.log
    的 MongoDB 日志文件中查找错误消息。此文件可以让您更深入地了解 MongoDB 无法启动的原因。
cat /usr/local/var/log/mongodb/output.log
  • 重新安装 MongoDB:如果问题仍然存在,请考虑卸载 MongoDB,然后使用 Homebrew 重新安装。您可以使用以下命令来执行此操作:
brew uninstall mongodb-community
brew install mongodb-community
  • 手动运行
    mongod
    :不要使用
    brew services
    ,尝试直接使用配置文件运行
    mongod
    ,看看它是否提供任何其他错误消息:
mongod --config /usr/local/etc/mongod.conf
  • 检查安全和隐私设置:如果 macOS 阻止
    mongod
    运行,请转至 系统偏好设置 > 安全和隐私,然后检查与 mongod 相关的任何消息。您可能需要允许它运行。
  • 使用 Docker 作为替代方案:如果您仍然遇到问题,请考虑在 Docker 容器中运行 MongoDB。这通常可以绕过 macOS 更新的兼容性问题:
docker run --name mongodb -d -p 27017:27017 mongo
  • 更新 Homebrew 和软件包:确保您的 Homebrew 和所有已安装的软件包都是最新的:
brew update
brew upgrade
  • 检查 OpenSSL 问题:一些用户报告了运行 MongoDB 时与 OpenSSL 相关的问题。确保您的 OpenSSL 安装正确并且与您的 MongoDB 版本兼容。
© www.soinside.com 2019 - 2024. All rights reserved.