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

Ale*_*x C 133 linux service initialization mongodb

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

我得到"命令未找到"以回应:

 init mongod start
Run Code Online (Sandbox Code Playgroud)

回应:

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

如果我尝试:

~: launchctl start mongod
launchctl start error: No such process
Run Code Online (Sandbox Code Playgroud)

显然我有点浮躁了.下一步似乎是输入随机字符,直到有效.该命令的工作是:mongod --quiet &我不知道,也许是你的方式该怎么办呢?也许我应该脱掉'安静模式'并添加> /logs/mongo.log到命令行的末尾?

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

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

非常感谢

Mar*_*emi 152

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

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

要在登录时启动启动mongodb:

    ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents
Run Code Online (Sandbox Code Playgroud)

然后立即加载mongodb:

    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
Run Code Online (Sandbox Code Playgroud)

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

    mongod
Run Code Online (Sandbox Code Playgroud)

它完美地运作.

  • 我更喜欢这个解决方案而非接受的答案.更新mongo时,在上面的答案中复制plist会让事情变得更难一些; 你必须记住根据需要更新路径.然而,使用homebrew建议的符号链接会为您解决这个问题.我使用了这种方法,以及上面答案中的别名(用homebrew.mxcl.mongodb替换org.mongodb.mongod),事情很有效 (5认同)
  • 我尝试了这个解决方案,我使用的数据库"消失了"!我相信这就是原因:homebrew提供的默认plist存储/usr/local/etc/mongod.conf中的mongod配置.此配置将dbpath指定为/ usr/local/var/mongodb而不是default/data/db.只是想在其他人遇到这种情况时注意到这一点.为了让我的数据库再次出现,我不得不卸载并删除符号链接. (2认同)

Bre*_*ams 128

最近构建的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
Run Code Online (Sandbox Code Playgroud)

  • 前往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`),它就可以了. (23认同)
  • 你最好向下滚动一下Mario Alemi的答案;) (5认同)

Ger*_*osi 72

Homebrew的servicestap与launchctl经理集成了公式.添加它很容易:

brew tap homebrew/services
Run Code Online (Sandbox Code Playgroud)

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

brew services start mongodb
Run Code Online (Sandbox Code Playgroud)

您还可以使用stoprestart:

brew services stop mongodb
brew services restart mongodb
Run Code Online (Sandbox Code Playgroud)

  • 喜欢这个答案,但发现brew将来会删除服务.brew服务启动mongodb警告:brew服务不受支持,很快就会删除. (4认同)

小智 14

如果你想要一个简单的gui来修复它(就像我一样),那么我可以推荐mongodb pref-pane.说明:http://blog.mongodb.org/post/28925264384/macosx-preferences-pane-for-mongodb

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