Sunday, January 18, 2015

Install MongoDB On Mac OS X

A guide to show you how to install MongoDB on Mac OS X.
  1. MongoDB 2.2.3
  2. Mac OS X 10.8.2

Download MongoDB

Download MongoDB from official website and save it in Downloads.
After downloading, extract it from Downloads and move it to your respective directory wherever you want to use it..
  • $ cd ~/Downloads
  • $ tar xzf mongodb-osx-x86_64-2.2.3.tgz
  • $ sudo mv mongodb-osx-x86_64-2.2.3 /usr/<location>/mongodb

MongoDB Data

By default, MongoDB write/store data into the /data/db folder, you need to create this folder manually and assign proper permission.
  • $ sudo mkdir -p /data/db
  • $ whoami
  • <username>
  • $ sudo chown 
  • <username> /data/db
  • chmod -R 777 /data/db

Add mongodb/bin to $PATH

Create a ~/.bash_profile file if not there or open ~/.bash_profile and assign /usr/local/mongodb/bin to $PATH environment variable, so that you can access Mongo’s commands easily.
  • export MONGO_PATH=/usr/<location>/mongodb
  • export PATH=$PATH:$MONGO_PATH/bin

##restart terminal and type the following--
  • $ mongo -version
Terminal will go like below 

MongoDB shell version: 2.2.3

Start MongoDB

Start MongoDB with mongod and make a simple mongo connection with mongo.

Terminal 1
  • $ mongod
Terminal will go like below 

MongoDB starting : pid=34022 port=27017 dbpath=/data/db/ 64-bit host=<username>.local
//...
waiting for connections on port 27017

Terminal 2
  • $ mongo 
Terminal will go like below 

MongoDB shell version: 2.2.3
connecting to: test
> show dbs
local (empty)

Note
If you don’t like the default /data/db folder, just specify an alternate path with --dbpath
  • $ mongod --dbpath /any-directory

Auto Start MongoDB

To auto start mongoDB, create a launchd job on Mac.
  • $ sudo vim /Library/LaunchDaemons/mongodb.plist
Puts following content :

/Library/LaunchDaemons/mongodb.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>mongodb</string>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/local/mongodb/bin/mongod</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>KeepAlive</key>
  <true/>
  <key>WorkingDirectory</key>
  <string>/usr/local/mongodb</string>
  <key>StandardErrorPath</key>
  <string>/var/log/mongodb/error.log</string>
  <key>StandardOutPath</key>
  <string>/var/log/mongodb/output.log</string>
</dict>
</plist>

Load above job.

  • $ sudo launchctl load /Library/LaunchDaemons/mongodb.plist
  • $ ps -ef | grep mongo
0    71     1   0  1:50PM ??         0:22.26 /usr/local/mongodb/bin/mongod
501   542   435   0  2:23PM ttys000    0:00.00 grep mongo

Try restart your Mac, MongoDB will be started automatically.