在Linux / OS X上启动mongod服务的正确方法是什么?


136

我已经安装了mongodb并能够运行它,使用它,做简单的数据库读/写类型的东西。现在,我正在尝试设置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上通过此链接(stackoverflow.com/questions/2438055/…)完成了操作,不确定在Mac OS上是否也是如此。
斯科特,

谢谢斯科特,不,我也没有从您的线程中看到并尝试过这些东西error command line: unknown option install
Alex C

Answers:


129

在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需要通过窗口服务器显示信息;它需要成为启动代理吗?是否足以使其成为启动守护程序
Marius Butuc

23
对OSX用户的提示:我通过自制软件安装了mongo,它包括在内/usr/local/Cellar/mongodb/2.4.5-x86_64/homebrew.mxcl.mongodb.plist(并已针对我的安装进行了正确配置)。只需将其复制homebrew.mxcl.mongodb.plist到LaunchAgents中,然后按照其余的说明进行操作(替换homebrew.mxcl.mongodborg.mongodb.mongod),效果很好。
jacob

5
您最好向下滚动以获取Mario Alemi的答案;)
octavian 2015年

/Library/LaunchAgents/homebrew.mxcl.mongodb.plist:无此类文件或目录
user269867

首先:MongoDB有它自己的官方Homebrew Tap,您应该使用它来安装社区版。$ brew tap mongodb/brew然后使用安装 $ brew install mongodb-community。至于服务,如果您运行$ brew services Homebrew,现在包括了Tap,因此无需执行任何操作。另外,关于启动服务,如果在登录后仅需要MongoDB(作为开发服务器而不是生产服务器),请使用~/Library/LaunchAgents/目录,而不要使用系统/Library/LaunchDeamons,后者需要root特权。
cseder

152

编辑:您现在应该使用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安装的。雅各布在接受的答案中的评论指向了我尝试时未知的文件。
马特·弗莱彻

5
与可接受的答案相比,我更喜欢这种解决方案。复制上面的答案中的plist会使更新mongo时的工作变得有些困难;您必须记住要根据需要更新路径。但是,按照自制软件的建议使用符号链接可以帮助您解决此问题。我使用了这种方法,并使用了上面答案中的别名(将org.mongodb.mongod替换为homebrew.mxcl.mongodb),并且一切正常
2014年

2
我尝试了这种解决方案,而我正在使用的数据库“消失了”!我相信这是原因:自制软件提供的默认plist将mongod配置存储在/usr/local/etc/mongod.conf中。此配置将dbpath指定为/ usr / local / var / mongodb,而不是默认的/ data / db。只是想在其他人遇到的情况下注意这一点。为了使我的数据库再次出现,我必须卸载并删除符号链接。
ttemple 2015年

1
注意:launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist内部有些奇怪tmux
kqw

@ttemple任何想法如何撤消所有这些?
永恒的

73

Homebrew的services水龙头将公式与launchctl管理器集成在一起。添加起来很容易:

brew tap homebrew/services

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

brew services start mongodb

您也可以使用stoprestart

brew services stop mongodb
brew services restart mongodb

4
喜欢答案,但发现brew将来会删除服务。brew服务启动mongodb警告:Brew服务不受支持,将很快被删除。
smile2day

1
那真是可悲的消息。目前,它只是不推荐使用,这意味着它将在某个时间删除,但仍然可以使用。希望有人会自愿维护它作为水龙头。删除或有水龙头可用时,我将更新我的答案。
Gergo Erdosi 2014年


自从我看到Error: Unknown command: services用这种方法尝试时,它已被删除。
iplus26

1
感谢您的回答。@ iplus26它仍然对我
有用


3

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

要启动mongodb:

brew services start mongodb

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

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

因此,brew服务启动mongodb,并成功将MongoDB作为服务运行。


2

我在Mac端进行了一些浏览。您可能要在这里使用安装程序因为它看起来像完成了所有设置一样,可以在Mac OS上自动启动。唯一的缺点是看起来它使用的是很旧的mongo版本。

此链接在这里也解释了设置,以获得蒙戈自动启动为Mac上的后台服务。


1
链接不再可用。
Hoppo

1
不确定是否完全相同,但已固定链接转到解释相同概念的文章
Scott

0

第一步

使用以下命令在您的linux机器上安装mongodb

apt安装mongodb-client && apt安装mongodb-server

第二步是

如果需要,请更改数据库路径而不是系统默认路径。
因此,请执行以下步骤并自行更改。

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

然后在Windows机器上这样做,就像放一个--install标志一样。您必须获得成功的消息。

最好的祝福...


0

在具有MongoDB 4.0的macOS 10.13.6上

我无法从mongo shell连接到本地主机

我以以下方式启动MongoDB:

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

我发现“ mongod.conf”具有:

bindIp:127.0.0.1

将我的JavaScript连接从localhost更改为127.0.0.1,它可以正常工作。

MongoDB Compass也发生了同样的情况。



0

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

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

2
这与五年前@ Rejeev-Divakaran提供的答案相同。提交新答案之前,请务必检查现有答案。如果存在建议您采用相同方法的建议,则适当的措施是对其进行投票-我相信,这是您在获得四个声誉点后所获得的特权。
杰里米·卡尼

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.