我多年来一直在我的 mac(目前是 sonoma 14.6.1)上愉快地运行 MongoDB,通过brew安装,使用
$brew 安装 mongodb-community
(和变体)在终端中,然后使用
启动它$brew 服务启动 mongodb/brew/mongodb-community
并收到一条好消息:
启动成功
(标签:homebrew.mxcl.mongodb-community)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 打开”。我猜这就是这里正在发生的事情。不幸的是,文档中关于解决此问题的建议已经过时,并且通过更改权限来解决此问题的其他尝试也失败了。欢迎任何建议。
尽管收到“成功启动”消息,但升级后您在 Mac 上启动 MongoDB 时似乎遇到了问题。
/usr/local/var/log/mongodb/output.log
的 MongoDB 日志文件中查找错误消息。此文件可以让您更深入地了解 MongoDB 无法启动的原因。cat /usr/local/var/log/mongodb/output.log
brew uninstall mongodb-community
brew install mongodb-community
mongod
:不要使用 brew services
,尝试直接使用配置文件运行 mongod
,看看它是否提供任何其他错误消息:mongod --config /usr/local/etc/mongod.conf
mongod
运行,请转至 系统偏好设置 > 安全和隐私,然后检查与 mongod 相关的任何消息。您可能需要允许它运行。docker run --name mongodb -d -p 27017:27017 mongo
brew update
brew upgrade