在 M1 Pro Monterey 12.0.1 上遇到问题 运行 并连接到 MongoDB

Having trouble running and connecting to MongoDB on M1 Pro Monterey 12.0.1

我正在使用 VS Code,MongoDB Community Server 5.0,node.js 后端,并且刚刚更新到 Monterey 12.0.1。我已按照说明使用 Mongo 说明 here 安装 MongoDB。 Homebrew 安装成功,MongoDB 5.0 看起来已经成功安装在 opt/homebrew 目录中,看起来很好。

尝试从 VS Code 启动和连接到数据库时,我遇到了两个问题:

  1. Mongo使用brew services start mongodb-community(或mongodb-community@5.0)命令时DB无法启动。

在使用 brew services 检查状态后,它最初说从一个新的 install/reinstall 开始,但随后立即变为错误。 MongoDB 本周早些时候运行良好,但在我更新到 12.0.1 后随机停止工作然后完全停止工作。我更新的原因是因为下一期。

  1. 本周早些时候 MongoDB 启动正常,我能够使用 npm run dev 从 VSCode 连接到服务器,但我开始获取以下随机问题:

    MongoNetworkError: failed to connect to server [localhost:27017] on first connect [Error: connect ECONNREFUSED ::1:27017 at TCPConnectWrap.afterConnect [as oncomplete]

最初我重新安装了 MongoDB 并且能够再次连接,但是后来 MongoDB 开始出现问题,就像我在第一期中提到的那样。启动时,VS Code拒绝连接数据库,一直报同样的错误。

我没有对后端进行任何更改 code/configuration 这会影响我从 VS Code 进行连接的能力。当 MongoDB 能够启动时,我可以通过 MongoDB Compass 连接到数据库就好了,但是 VS Code 仍然拒绝连接。我们做了一些研究并尝试将 mongoose.connect 从 localhost 更改为 localhost:27017,尝试从一个新的 repo 开始,重新安装 MongoDB 几次,但没有成功。

几天来我们一直在努力解决这个问题,我想知道这是否只是使用新 M1 的问题并且必须等待软件赶上来。任何帮助将不胜感激!

对于发现此问题的任何人 - 我们经过 3 天的反复试验后解决了这个问题。

我们最终为 mongod 命令指定了数据库文件夹,因为 brew services 无法使用 mongo:alias mongod="mongo --port 27017 --dbpath /opt/homebrew/var/mongodb”。这解决了第一个问题,我们可以使用 mongod.

启动服务器

为了解决第二个问题,我将 localhost 替换为应用的 mongoose.connect 配置的指定 ip:

mongoose.connect('mongodb://127.0.0.1:27017/app')

出于某种原因,本地主机无法连接,但使用 127.0.0.1:27017 可以。

这对我有用

您只需要转到 /tmp 文件夹,然后删除 mongodb-27017.sock文件,然后您可以再次在终端中重新启动 mongo 数据库。

删除mongodb-27017.sock文件时,需要注意文件所有者和权限。如果只有 root 用户可以删除此文件,则需要更改为 root 用户才能删除它。