LoginSignup
4
1

More than 5 years have passed since last update.

Brewを使わずにMacにMongoDBを入れ、自動で起動するようにした時の備忘録

Posted at

背景

仕事で使ってるMongoDBのバージョンが2.6でbrewで入れようとしたらhigh sierraだと入れれなさそうだったので(2017/10/13時点で)brewを使わずに入れてみた。

MongoDBのダウンロード

任意のディレクトリに移動しておく

$ cd ~/

MongoDBのダウンロード

$ wget https://fastdl.mongodb.org/osx/mongodb-osx-x86_64-2.6.5.tgz
$ tar zxvf mongodb-osx-x86_64-2.6.5.tgz
$ rm mongodb-osx-x86_64-2.6.5.tgz

名前を変更する

$ mv mongodb-osx-x86_64-2.6.5 mongodb

これでインストールされました。

Pathを通す

$ vi ~/.bash_profile

中に以下を追記

~/.bash_profile
export PATH=/Users/sugawara_ryosuke/mongodb/bin:$PATH

これでどこからでもmongoコマンドが使えるようになります。

$ mongod -version

MongoDB起動

まずは必要なディレクトリを作成します。

$ mkdir ~/mongodb/log
$ mkdir ~/mongodb/db

起動

$ mongod --fork --logpath /Users/sakura/mongodb/log/mongodb.log --nojournal --noprealloc --dbpath /Users/sakura/mongodb/db

以下のようなのが表示されれば起動成功です。

note: noprealloc may hurt performance in many applications
about to fork child process, waiting until server is ready for connections.
forked process: 2926
child process started successfully, parent exiting

Macを再起動しても自動で起動するようにする

これだけだとMacを再起動するたびに起動させなければなりません。

launchd/launchctl で起動するように設定。

$ sudo vi /Library/LaunchDaemons/org.mongodb.mongod.plist

中に以下を記入します。

/Library/LaunchDaemons/org.mongodb.mongod.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>org.mongodb.mongod</string>
        <key>RunAtLoad</key>
        <true/>
        <key>ProgramArguments</key>
        <array>
               <string>/Users/sakura/sakura/mongodb/bin/mongod</string>
               <string>--dbpath</string>
               <string>/Users/sakura/sakura/mongodb/db</string>
               <string>--logpath</string>
               <string>/Users/sakura/sakura/mongodb/log/mongodb.log</string>
        </array>
</dict>
</plist>

念のためオーナーやパーミッションも変更。

$ sudo chown root:wheel /Library/LaunchDaemons/org.mongodb.mongod.plist
$ sudo chmod 644 /Library/LaunchDaemons/org.mongodb.mongod.plist

最後に読み込めば完了。

$ launchctl load /Library/LaunchDaemons/org.mongodb.mongod.plist

MongoDBが自動起動しない場合

自動起動できていなかった場合は以下のコマンドを実行します。

$ rm /Users/sakura/mongodb/db/mongod.lock
$ sudo mongod --dbpath=/Users/sakura/mongodb/db --repair

これで完了です。

参考

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1