How to 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

1. Download MongoDB

Get MongoDB from official website, extracts it :


$ cd ~/Download
$ tar xzf mongodb-osx-x86_64-2.2.3.tgz
$ sudo mv mongodb-osx-x86_64-2.2.3 /usr/local/mongodb

2. 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
mkyong
$ sudo chown mkyong /data/db
Note
Permissin is required to avoid following locking error :


Unable to create/open lock file: /data/db/mongod.lock

3. Add mongodb/bin to $PATH

Create a ~/.bash_profile file and assign /usr/local/mongodb/bin to $PATH environment variable, so that you can access Mongo’s commands easily.


$ cd ~
$ pwd
/Users/mkyong
$ touch .bash_profile
$ vim .bash_profile

export MONGO_PATH=/usr/local/mongodb
export PATH=$PATH:$MONGO_PATH/bin

##restart terminal

$ mongo -version
MongoDB shell version: 2.2.3

4. Start MongoDB

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

Terminal 1

$ mongod
MongoDB starting : pid=34022 port=27017 dbpath=/data/db/ 64-bit host=mkyong.local
//...
waiting for connections on port 27017
Terminal 2

$ mongo
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

5. 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.

References

  1. mongoDB website
  2. Install mongoDB on Mac OS X
  3. launchd.plist example
  4. Designing Daemons on Mac OS X
  5. Mac Launchd example

About the Author

author image
mkyong
Founder of Mkyong.com, love Java and open source stuff. Follow him on Twitter, or befriend him on Facebook or Google Plus. If you like my tutorials, consider make a donation to these charities.

Comments

avatar
50 Comment threads
3 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
42 Comment authors
ArvsNagarajan RVyacheslav OkaraHarshTrueblue711 Recent comment authors
newest oldest most voted
justinjohnsonorg
Guest
justinjohnsonorg

This was perfect. Thanks!

Step #2 can be simplified to:
$ sudo mkdir -p /data/db
$ sudo chown `whoami` /data/db

Trueblue711
Guest
Trueblue711

Most straight-forward and helpful guide. Moreso that Mongo’s official install instructions. Thank you!

Arvs
Guest
Arvs

Thank you so much! I’ve been trying to figure this out since last night without having to use homebrew since I installed mongodb via binary. Your article helped me make it finally worked. This is working for High Sierra 10.13.3.

Nagarajan R
Guest
Nagarajan R

Thank you so much sir….you are really doing a great job by investing your time and thus saving our time greatly….

Vyacheslav Okara
Guest
Vyacheslav Okara

Thank you!

Harsh
Guest
Harsh

Thanks alot for neat & clean info you are a saviour man

Vaibhav Yadav
Guest
Vaibhav Yadav

Thank you for a quick and easy tutorial.

I got a message in the log:
2016-07-29T07:47:01.208+0530 W NETWORK [HostnameCanonicalizationWorker] Failed to obtain address information for hostname Vaibhavs-MBP: nodename nor servname provided, or not known

Though everything seem to be working fine. But can someone explain me what the message is about?

Chaya Krishna Prasad
Guest
Chaya Krishna Prasad

Great Article mkyong, the steps were simple and easy to follow along.
Appreciate the effort in writing this tutorial.

Ewen Mackenzie
Guest
Ewen Mackenzie

great post! just followed and it works like a charm! thanks you man, you are a hacker’s life saviour haha

Jackey
Guest
Jackey

Awesome post man. I’ve just followed your tutorial as it is, and setting up mongodb in my machine was a piece of cake

benaddi rachid
Guest
benaddi rachid

Auto Start MongoDB doesn’t work for me.

Terminal :

$ mongo
MongoDB shell version: 3.0.6
connecting to: test
2015-09-30T17:10:24.137+0100 W NETWORK Failed to connect to 127.0.0.1:27017, reason: errno:61 Connection refused
2015-09-30T17:10:24.139+0100 E QUERY Error: couldn’t connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed
at connect (src/mongo/shell/mongo.js:179:14)
at (connect):1:6 at src/mongo/shell/mongo.js:179
exception: connect failed

Nikita Gupta
Guest
Nikita Gupta

I am getting the following error:
/Library/LaunchDaemons/mongodb.plist: Invalid property list

Any reason why?

Alex Perrier
Guest
Alex Perrier

Thanks for this post. Helped me start Mongodb in less than 5mn

Sergey Ohotnik
Guest
Sergey Ohotnik

thank you very much, so clear and complete tutorial

Mattias
Guest
Mattias

Wonderful, many thanks, you saved my day. I linked to this post in a comment on a different tutorial (for nodeJS) which completely missed how much more work it is to install mongo on OSX compared to windows.

Guillaume Duprez
Guest
Guillaume Duprez

big thanks for this tutorial…

Kyle White
Guest
Kyle White

You can also use the command source ~/.bash_profile instead of restarting your terminal

sibi
Guest
sibi

awesome! u saved me a lot of time..can’t thank u enuf..

jeff
Guest
jeff

thank you, very helpful!

M
Guest
M

Thanks! Awesome instructions.

Ajinkya
Guest
Ajinkya

Thanks man, loved the easy steps. i used NANO instead of VIM. vim commands are not easy for me.

mkyong
Guest
mkyong

Haha, I only know VIM in *nix.

Yeshen Shang
Guest
Yeshen Shang

Hi, i followed this instruction but still got: command not found: mongo. please help! thanks!

mkyong
Guest
mkyong

Refer Step#3

shilpa
Guest
shilpa

Thanks, it is helpful

slhddn
Guest
slhddn

Thanks for this helpful post. I was trying to install it following the instructions on mongodb.org but I couldn’t. That worked great.

Gimmi
Guest
Gimmi

Great Guide. Thanks a lot

xtbl
Guest
xtbl

Thanks dude!

trackback
MongoDB mit Homebrew installieren | webworkerblog

[…] How To Install MongoDB On Mac OS X […]

niko
Guest
niko

U saved my life. I have tried almost every other approach to installing mongodb globally with no success, and was seriously contemplating jumping out of my window until I came across your tutorial. Many blessing to you and your family! Thank u so much.

trackback
mongo: command not found on Mac OSX even though it's in the PATH - QueryPost.com | QueryPost.com

[…] trying to use mongodb on my Mac for a nodeJS app. I followed the steps given here to install […]

trackback
mongo: command not found on Mac OSX even though it's in the PATH | CopyQuery

[…] trying to use mongodb on my Mac for a nodeJS app. I followed the steps given here to install […]