14

我通过 Homebrew 安装了 MongoDB(按照http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/),但它不起作用。

在 shell 提示符下输入mongod给我:

-bash: mongod: command not found

不确定我是否需要为 Homebrew 添加一些东西到我的 PATH 环境变量中?

我可以看到 Mongo 安装在/usr/local/Cellar/mongodb- 但假设我不需要将通过自制软件安装的所有内容添加到路径中?另外,假设我可以从任何目录运行 mongod 或者我实际上是在安装目录中?

当我跑步时,brew doctor我得到:

Warning: You have unlinked kegs in your Cellar 

后面是 3 个项目的列表,其中包括 MongoDB——但我不确定我是如何链接它们的?

4

5 回答 5

18

完美运行

  1. brew update
  2. brew tap mongodb/brew
  3. brew install mongodb-community@4.2

有关最新版本,请查看https://docs.mongodb.com/manual/release-notes/

于 2019-11-13T17:27:12.027 回答
8

您收到此错误是因为您的“brew”安装未能在 /usr/local/bin 中创建正确的符号链接。结果,shell 在 $PATH 中找不到 mongo 可执行文件。您可以使用以下步骤解决此问题:

  • 检查 /usr/local/bin 的权限并确保您拥有该目录并对其具有写入权限

    $ ls -ld /usr/local/bin

  • 一旦你解决了这个问题,运行'brew link'来修复符号链接

    $ brew link mongodb

于 2012-07-30T17:27:48.593 回答
6

如果你在mongodb-community@4.0. 您可以尝试重新安装brew reinstall mongodb-community@4.0.

然后我得到以下提示:

==> Caveats
mongodb-community@4.0 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.

If you need to have mongodb-community@4.0 first in your PATH run:
  echo 'export PATH="/usr/local/opt/mongodb-community@4.0/bin:$PATH"' >> ~/.bash_profile

所以你可以复制echo命令并重新启动你的shell!

于 2019-08-05T08:30:49.033 回答
3

从在终端中运行这些命令的不同频道复制更新了安装/配置问题,如 OP 中所述

brew tap mongodb/brew
brew install mongodb-community
brew services start mongodb-community
于 2020-08-31T19:54:36.693 回答
0

它在目录中工作,因为 sh 搜索 ENV 路径,然后在 cwd 中搜索名为 mongod 的程序。我一直在环顾四周,似乎 MongoDB 的默认安装(我不是 Mac 用户)没有安装 rc 或 init 脚本,以便 sh 了解它的运行行为,如下所述:

http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/#using-mongodb-from-homebrew-and-macports

随 Homebrew 和 MacPorts 一起安装的软件包不包含控制脚本或与系统进程管理器的交互。

如果您正确配置了 Homebrew 和 MacPorts,包括设置 PATH,则可以从系统 shell 访问 MongoDB 应用程序和实用程序。在终端(用于测试或开发)或使用进程管理工具启动 mongod 进程。

所以你必须实际定义(如你所说)MongoDBs路径,这是一个例子:https ://snipt.net/sido/installing-mongodb-on-os-x/

编辑:这个例子不是我的。我只是从它的用户那里偷了它:https ://snipt.net/sido/

于 2012-07-29T14:56:22.307 回答