Linux / OS Xでmongodサービスを開始する正しい方法は何ですか?


136

私はmongodbをインストールし、それを実行し、操作し、単純なDB読み取り/書き込みタイプのことを行うことができました。現在、mongodをサービスとして実行するようにMacをセットアップしようとしています。

「コマンドが見つかりません」というメッセージが表示されます。

 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てコマンドラインの最後に追加するだけですか?

Linuxサーバーで同じことを行うことを目的として、Macで開発環境を構築しています。Bashコマンドについてはよくわかりません。答えを引き上げようとする他のすべての検索では、Windowsマシンに関するアドバイスが得られます。

多分誰かがコマンドのLinuxバージョンを知っていますか?

どうもありがとう


私はWindowsでこのリンク(stackoverflow.com/questions/2438055/…)を実行しましたが、Mac OSでも同じかどうかはわかりません。
スコット

スコットに感謝します。私もあなたのスレッドから見たことはありませんでしたerror command line: unknown option install
アレックスC

回答:


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.mongodbのためにorg.mongodb.mongod)、それは素晴らしい作品。
jacob 2013

5
マリオアレミの答えは下にスクロールした方がいいです;)
オクタビアン


まず、MongoDBには独自の公式Homebrew Tapがあり、コミュニティエディションのインストールに使用する必要があります。$ brew tap mongodb/brew次に、を使用してインストールし $ brew install mongodb-communityます。サービスについては、$ brew services Homebrew を実行すると、そのTapが含まれるようになるため、何もする必要はありません。また、スタートアップサービスについては、ログイン後にMongoDBが必要な場合(本番サーバーではなく開発サーバーとして)、後者ではroot権限が必要な~/Library/LaunchAgents/システムで/Library/LaunchDeamonsはなくディレクトリを使用します。
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と一緒にインストールしたと思います。受け入れた回答に含まれるJacobのコメントは、試したときに不明なファイルを指しています。
Matt Fletcher、

5
私は受け入れられた答えよりもこの解決策を好む。上記の回答のplistをコピーすると、mongoを更新するときに少し難しくなります。必要に応じてパスを更新することを忘れないでください。ただし、homebrewのアドバイスに従ってシンボリックリンクを使用すると、この処理が自動的に行われます。私はこのアプローチと上記の回答からのエイリアス(org.mongodb.mongodをhomebrew.mxcl.mongodbで置き換える)を使用しました。物事はうまく機能します
2014年

2
私はこの解決策を試し、私が使用していたデータベースが「消えた」のです!これが理由だと思います。homebrewが提供するデフォルトのplistは、mongod設定を/usr/local/etc/mongod.confに保存します。この構成では、デフォルトの/ data / dbではなく、/ usr / local / var / mongodbになるようにdbpathを指定しています。他の誰かに起こった場合にこれに注意したかっただけです。データベースを再び表示するには、シンボリックリンクをアンロードして削除する必要がありました。
ttemple 2015

1
注:launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist内部には奇妙な点がありますtmux
kqw '16 / 10/15

@ttempleこれらすべてを元に戻す方法はありますか?
タイムレスな

73

Homebrewのservicesタップは、数式をlaunchctlマネージャーと統合します。追加は簡単です:

brew tap homebrew/services

その後、次のコマンドでMongoDBを起動できます(これにより、ブート時にmongodbも起動します)。

brew services start mongodb

stopまたはを使用することもできますrestart

brew services stop mongodb
brew services restart mongodb

4
答えは気に入ったが、brewは将来的にサービスを削除することがわかった。brewサービスはmongodbを開始します警告:brewサービスはサポートされておらず、間もなく削除されます。
smile2day 2014

1
それは悲しいニュースです。現時点では非推奨です。つまり、いつか削除される予定ですが、引き続き機能します。うまくいけば、誰かがそれを蛇口として維持することを志願するでしょう。回答が削除されたとき、またはタップが利用可能になったときに、回答を更新します。
Gergo Erdosi 2014


Error: Unknown command: servicesこの方法を試したときに表示されたので、すでに削除されています。
iplus26 2015

1
この回答をありがとう。@ iplus26それでも機能します
philip oghenerobo balogun


3

Homebrew経由でMongoDBをインストールしたところです。インストールコンソールの最後に、次のような出力が表示されます。

mongodbを起動するには:

brew services start mongodb

または、バックグラウンドサービスが必要ない場合は、次のように実行できます。

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

したがって、brewサービスはmongodbを開始し、MongoDBをサービスとして実行することができました。


2

Mac側を少し見回した。Mac OSで自動的に起動するためのすべてのセットアップを実行しているように見えるため、ここでインストーラーを使用することをお勧めします。唯一の欠点は、かなり古いmongoバージョンを使用しているように見えることです。

このリンクは、Macでバックグラウンドサービスとしてmongoを自動的に起動するための設定についても説明しています。


1
リンクは使用できなくなりました。
ホッポ、2015年

1
まったく同じかどうかはわかりませんが、同じ概念を説明する記事に移動するリンクを修正しました
Scott

0

最初の一歩

あなたの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フラグを指定するのと同じようにしてください。あなたは成功したメッセージを取得する必要があります。

宜しくお願いします...


0

MongoDB 4.0がインストールされたmacOS 10.13.6の場合

mongoシェルからlocalhostに接続できませんでした

私は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が5年以上前に提供した回答と同じです。新しい回答を送信する前に、必ず既存の回答を確認してください。同じアプローチを提案するものが存在する場合、適切なアクションはそれを賛成することです。これは、さらに4つの評判ポイントを受け取ったときに獲得できる特権だと思います。
Jeremy Caney

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.