How to install MongoDB on Mac OS X
A guide to show you how to install MongoDB on Mac OS X.
- MongoDB 2.2.3
- 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 :
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
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.
Most straight-forward and helpful guide. Moreso that Mongo’s official install instructions. Thank you!
This was perfect. Thanks!
Step #2 can be simplified to:
$ sudo mkdir -p /data/db
$ sudo chown `whoami` /data/db
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.
Thank you so much sir….you are really doing a great job by investing your time and thus saving our time greatly….
Thank you!
Thanks alot for neat & clean info you are a saviour man
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?
Great Article mkyong, the steps were simple and easy to follow along.
Appreciate the effort in writing this tutorial.
great post! just followed and it works like a charm! thanks you man, you are a hacker’s life saviour haha
Awesome post man. I’ve just followed your tutorial as it is, and setting up mongodb in my machine was a piece of cake
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
I am getting the following error:
/Library/LaunchDaemons/mongodb.plist: Invalid property list
Any reason why?
Thanks for this post. Helped me start Mongodb in less than 5mn
thank you very much, so clear and complete tutorial
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.
big thanks for this tutorial…
You can also use the command source ~/.bash_profile instead of restarting your terminal
awesome! u saved me a lot of time..can’t thank u enuf..
thank you, very helpful!
Thanks! Awesome instructions.
Thanks man, loved the easy steps. i used NANO instead of VIM. vim commands are not easy for me.
Haha, I only know VIM in *nix.
Hi, i followed this instruction but still got: command not found: mongo. please help! thanks!
Refer Step#3
Thanks, it is helpful
Thanks for this helpful post. I was trying to install it following the instructions on mongodb.org but I couldn’t. That worked great.
Great Guide. Thanks a lot
Thanks dude!
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.
Thank you. This worked great!
Thanks a lot!
Thank you for this tutorial, it was very straightforward and easy to follow.