在 linux / OS X 上启动 mongod 服务的正确方法是啥?

Posted

技术标签:

【中文标题】在 linux / OS X 上启动 mongod 服务的正确方法是啥?【英文标题】:What is the correct way to start a mongod service on linux / OS X?在 linux / OS X 上启动 mongod 服务的正确方法是什么? 【发布时间】:2011-08-01 13:51:05 【问题描述】:

我已经安装了 mongodb 并且能够运行它,使用它,做简单的 DB 读/写类型的东西。现在我正在尝试将我的 Mac 设置为将 mongod 作为服务运行。

我收到“找不到命令”响应:

 init mongod start

回应:

~: service mongod start
service: This command still works, but it is deprecated. Please use launchctl(8) instead.
service: failed to start the 'mongod' service

如果我尝试:

~: launchctl start mongod
launchctl start error: No such process

所以显然我有点犯错了。下一步似乎是输入随机字符,直到某些东西起作用。 起作用的命令是:mongod --quiet & 我不确定,也许你应该这样做?也许我应该取消“安静模式”并在命令行末尾添加> /logs/mongo.log

我正在 Mac 上构建开发环境,目的是在 linux 服务器上做同样的事情。我只是不确定 Bash 命令。我试图找出答案的所有其他搜索都为我提供了有关 Windows 机器的建议。

也许有人知道命令的 linux 版本?

非常感谢

【问题讨论】:

我已经在 Windows 上使用此链接 (***.com/questions/2438055/…) 完成,不确定在 Mac OS 上是否相同。 谢谢 Scott,不,我也看过并尝试过你的帖子 error command line: unknown option install 【参考方案1】:

我在 Mac 端做了一些观察。您可能需要使用安装程序here,因为它看起来为您完成了所有设置,以便在 Mac OS 上自动启动。唯一的缺点是它看起来使用的是相当旧的 mongo 版本。

此链接here 还解释了如何设置 mongo 作为 Mac 上的后台服务自动启动。

【讨论】:

链接不再可用。 不确定是否完全相同,但修复了指向解释相同概念的文章的链接【参考方案2】:

使用最近构建的 mongodb 社区版,这很简单。

当您通过 brew 安装时,它会告诉您具体要做什么。无需创建新的启动控制文件。

$ brew install mongodb
==> Downloading https://homebrew.bintray.com/bottles/mongodb-3.0.6.yosemite.bottle.tar.gz ### 100.0%
==> Pouring mongodb-3.0.6.yosemite.bottle.tar.gz
==> Caveats
To have launchd start mongodb at login:
  ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents
Then to load mongodb now:
  launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
Or, if you don't want/need launchctl, you can just run:
  mongod --config /usr/local/etc/mongod.conf
==> Summary
?  /usr/local/Cellar/mongodb/3.0.6: 17 files, 159M

【讨论】:

mongod是否需要通过window server显示信息;它需要成为 launch 代理 还是足以使其成为 launch daemon 请注意 OSX 用户:我通过自制软件安装了 mongo,它包括 /usr/local/Cellar/mongodb/2.4.5-x86_64/homebrew.mxcl.mongodb.plist(并且已为我的安装正确配置)。只需将 homebrew.mxcl.mongodb.plist 复制到 LaunchAgents 中,然后按照这些说明的其余部分进行操作(将 homebrew.mxcl.mongodb 替换为 org.mongodb.mongod),效果很好。 你最好向下滚动查看 Mario Alemi 的答案;) /Library/LaunchAgents/homebrew.mxcl.mongodb.plist:没有这样的文件或目录 首先:MongoDB 有它自己的官方 Homebrew Tap,你应该使用它来安装社区版。 $ brew tap mongodb/brew 然后使用 $ brew install mongodb-community 安装。至于服务,如果你运行$ brew services Homebrew 现在已经包含了 Tap,所以不需要做任何事情。另外,关于启动服务,如果你登录后只需要MongoDB(作为开发服务器而不是生产服务器),请使用~/Library/LaunchAgents/目录而不是系统/Library/LaunchDeamons,后者需要root权限。【参考方案3】:

编辑:您现在应该使用 brew services start mongodb,就像 Gergo 的回答一样...

当你安装/升级 mongodb 时,brew 会告诉你该怎么做:

在登录时启动 mongodb:

    ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents

那么现在加载mongodb:

    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist

或者,如果您不想/不需要launchctl,您可以运行:

    mongod

效果很好。

【讨论】:

我没有看到那个说明!这在 Mac OSX 10.8.4 上非常适合我,我想我是用 Brew 安装的。 Jacob 在接受的答案中的评论在我尝试时指向了一个未知文件。 我更喜欢这个解决方案而不是接受的答案。在更新 mongo 时复制上面答案中的 plist 会使事情变得更加困难;您必须记住根据需要更新路径。但是,按照 homebrew 的建议使用符号链接可以为您解决这个问题。我使用了这种方法,以及上面答案中的别名(用 homebrew.mxcl.mongodb 替换 org.mongodb.mongod),效果很好 我尝试了这个解决方案,我使用的数据库“消失了”!我相信这就是原因:自制软件提供的默认 plist 将 mongod 配置存储在 /usr/local/etc/mongod.conf 中。此配置将 dbpath 指定为 /usr/local/var/mongodb 而不是默认的 /data/db。只是想注意这一点,以防万一发生在其他人身上。为了让我的数据库再次出现,我必须卸载并删除符号链接。 注意:launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plisttmux 中有些奇怪 @ttemple 知道如何撤消所有这些吗?【参考方案4】:

如果您想要一个简单的 gui 来解决这个问题(就像我一样),那么我可以推荐 mongodb pref-pane。描述:https://www.mongodb.com/blog/post/macosx-preferences-pane-for-mongodb

在github上:https://github.com/remysaissy/mongodb-macosx-prefspane

【讨论】:

【参考方案5】:

Homebrew 的 services tap 将公式与 launchctl 管理器集成在一起。添加很简单:

brew tap homebrew/services

然后您可以使用此命令启动 MongoDB(这也将在启动时启动 mongodb):

brew services start mongodb

您也可以使用stoprestart

brew services stop mongodb
brew services restart mongodb

【讨论】:

喜欢这个答案,但发现 brew 将来会删除服务。 brew services start mongodb 警告:brew services 不受支持,很快就会被删除。 这是个不幸的消息。目前它刚刚被弃用,这意味着它会在某个时候被删除,但它仍然有效。希望有人会自愿维护它作为水龙头。当它被删除或点击可用时,我会更新我的答案。 robots.thoughtbot.com/… 它已经被删除了,因为我在尝试这种方式时看到了Error: Unknown command: services 感谢您的回答。 @iplus26 它仍然对我有用【参考方案6】:
mongod --dbpath [path_to_data_directory]

【讨论】:

OP 希望将其作为服务运行,而不是以交互方式运行。一个好的答案应该直接解决这个问题。【参考方案7】:

刚刚通过 Homebrew 安装了 MongoDB。在安装控制台的最后,可以看到如下输出:

启动 mongodb:

brew services start mongodb

或者,如果您不想要/不需要后台服务,您可以运行:

mongod --config /usr/local/etc/mongod.conf

所以,brew services start mongodb,成功地为我运行了 MongoDB 作为服务。

【讨论】:

【参考方案8】:

第一步

在你的linux机器上安装mongodb

apt install mongodb-client && apt install mongodb-server

第二步是

如果需要,可以更改数据库路径而不是系统默认路径。 请按照以下步骤自行更改。

mongod --directoryperdb --dbpath /var/lib/mongodb/data/db --logpath /var/lib/mongodb/log/mongodb.log --logappend --rest

并在您的 Windows 机器上执行此操作,只需放置一个 --install 标志即可。 您必须收到一条成功的消息。

最好的问候...

【讨论】:

【参考方案9】:

在 macOS 10.13.6 和 MongoDB 4.0 上

我无法从 mongo shell 连接到 localhost

我开始使用 MongoDB:

mongod --config /usr/local/etc/mongod.conf

我发现 'mongod.conf' 有:

bindIp: 127.0.0.1

将我的 javascript 连接从 localhost 更改为 127.0.0.1,它运行良好。

MongoDB Compass 也是如此。

【讨论】:

【参考方案10】:

mongod 没有为我启动守护进程,但在我运行以下命令后,它开始工作:

'mongod --fork --logpath /var/log/mongodb.log'

(来自这里:https://docs.mongodb.com/manual/tutorial/manage-mongodb-processes/)

【讨论】:

【参考方案11】:

通过 brew 安装 mongodb 后,运行以下命令使其启动并运行:

mongod --dbpath /usr/local/var/mongodb

【讨论】:

这与五年前@Rejeev-Divakaran 提供的答案相同。请务必在提交新答案之前检查现有答案。如果有人建议您采用相同的方法,则适当的行动是对其进行投票——我相信,您将在获得四个声望点后获得特权。

以上是关于在 linux / OS X 上启动 mongod 服务的正确方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

在 Mac OS X 上使用 Eclipse CDT 调试远程 Linux 应用程序

OS X:相当于 Linux 的 wget

linux下service mongod start启动报错

linux下service mongod start启动报错

在 Mac OS X 上使用现代 OpenGL [关闭]

在OS X上重新启动apache