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

mkyong

Founder of Mkyong.com, passionate Java and open-source technologies. If you enjoy my tutorials, consider making a donation to these charities.

44 Comments
Most Voted
Newest Oldest
Inline Feedbacks
View all comments
Trueblue711
9 years ago

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

justinjohnsonorg
12 years ago

This was perfect. Thanks!

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

Arvs
8 years ago

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
8 years ago

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

Vyacheslav Okara
8 years ago

Thank you!

Harsh
9 years ago

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

Vaibhav Yadav
9 years ago

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
9 years ago

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

Ewen Mackenzie
10 years ago

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

Jackey
10 years ago

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
10 years ago

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
10 years ago

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

Any reason why?

Alex Perrier
10 years ago

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

Sergey Ohotnik
10 years ago

thank you very much, so clear and complete tutorial

Mattias
11 years ago

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
11 years ago

big thanks for this tutorial…

Kyle White
11 years ago

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

sibi
12 years ago

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

jeff
12 years ago

thank you, very helpful!

M
12 years ago

Thanks! Awesome instructions.

Ajinkya
12 years ago

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

mkyong
11 years ago
Reply to  Ajinkya

Haha, I only know VIM in *nix.

Yeshen Shang
12 years ago

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

mkyong
11 years ago
Reply to  Yeshen Shang

Refer Step#3

shilpa
12 years ago

Thanks, it is helpful

slhddn
12 years ago

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
12 years ago

Great Guide. Thanks a lot

xtbl
12 years ago

Thanks dude!

niko
12 years ago

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.

Marshall Thompson
12 years ago

Thank you. This worked great!

sfsf
12 years ago

Thanks a lot!

Peter
12 years ago

Thank you for this tutorial, it was very straightforward and easy to follow.