Main Tutorials

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 Author

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

Comments

Subscribe
Notify of
44 Comments
Most Voted
Newest Oldest
Inline Feedbacks
View all comments
Trueblue711
7 years ago

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

justinjohnsonorg
10 years ago

This was perfect. Thanks!

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

Arvs
6 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
6 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
6 years ago

Thank you!

Harsh
6 years ago

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

Vaibhav Yadav
7 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
7 years ago

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

Ewen Mackenzie
7 years ago

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

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

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

Any reason why?

Alex Perrier
8 years ago

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

Sergey Ohotnik
8 years ago

thank you very much, so clear and complete tutorial

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

big thanks for this tutorial…

Kyle White
9 years ago

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

sibi
9 years ago

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

jeff
9 years ago

thank you, very helpful!

M
9 years ago

Thanks! Awesome instructions.

Ajinkya
10 years ago

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

mkyong
9 years ago
Reply to  Ajinkya

Haha, I only know VIM in *nix.

Yeshen Shang
10 years ago

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

mkyong
9 years ago
Reply to  Yeshen Shang

Refer Step#3

shilpa
10 years ago

Thanks, it is helpful

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

Great Guide. Thanks a lot

xtbl
10 years ago

Thanks dude!

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

Thank you. This worked great!

sfsf
10 years ago

Thanks a lot!

Peter
10 years ago

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