通过Homebrew安装的MongoDB无法工作

16

我通过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下 - 但是我假设我不需要将通过homebrew安装的每个东西都添加到路径中?此外,我假设我可以从任何目录运行mongod,而不必实际位于安装目录中?

当我运行brew doctor时,我得到:

Warning: You have unlinked kegs in your Cellar 

接下来是一个包含MongoDB的3个项目列表 - 但我不确定应该如何将它们链接起来?


1
更多信息:如果我从/usr/local/Cellar中的安装目录执行它,我就可以运行mongo,但我认为我应该能够从任何地方运行它。感觉在Homebrew方面漏了一些明显的东西。 - webgirl
6个回答

20

10

出现这个错误是因为您的'brew'安装程序在/usr/local/bin中未能创建正确的符号链接。 因此,shell无法在$ PATH中找到mongo可执行文件。 您可以使用以下步骤来解决此问题:

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

    $ ls -ld /usr/local/bin

  • 修复权限后,运行'brew link'以修复符号链接

    $ brew link mongodb


1
谢谢提示。我已经更改了文件夹/usr/local/bin的所有者。 如果您遇到以下提示:错误:无法创建符号链接文件:/usr/local/Cellar/mongodb/2.2.2-x86_64/bin/mongotop您应该先删除符号链接,然后重新链接它。 - Martin Stolz

7
如果您使用的是 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!


你还应该source你的/.bash_profile或者/.zshrc以使其生效。 - GwenM

3

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

brew tap mongodb/brew
brew install mongodb-community
brew services start mongodb-community

1

我曾经遇到过同样的问题,这个解决方案对我很有效。之前我已经通过homebrew卸载了mongodb并重新安装了它,但遇到了许多问题。这个解决方案看起来就可以正常工作。

brew uninstall --force mongodb

brew cleanup -s mongodb

brew cleanup --prune-prefix

brew install mongodb

0

它可以从目录中工作,因为sh搜索ENV路径,然后在名为mongod的程序的cwd中运行。我已经四处看了一下,似乎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进程(用于测试或开发)或使用进程管理工具。
因此,您必须实际定义(如您所说)MongoDB的路径,这里是一个示例:https://snipt.net/sido/installing-mongodb-on-os-x/ 编辑:该示例不是我自己的。我只是从其用户那里偷来的:https://snipt.net/sido/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接