What’s MongoDB?
MongoDB is a document database which belongs to a family of databases called NoSQL - not only SQL. In MongoDB, records are documents which behave a lot like JSON objects in JavaScript. Values in documents can be looked up by their field’s key. Documents can have some fields/keys and not others, which makes Mongo extremely flexible.
This is different than SQL databases like MySQL and PostgreSQL, where fields correspond to columns in a table and individual records correspond to rows.
Prerequisites
- You should have some familiarity with the Mac Terminal application since you’ll need to use it to install and run MongoDB.
- Dependencies. This guide goes over the two main ways to install MongoDB on a Mac. One of the methods requires Homebrew.
- Homebrew. Homebrew is a package manager for the Mac – it makes installing most open source software (like MongoDB) as simple as writing
brew install mongodb
. Follow the instructions in the How to Install Homebrew on a Mac instruction guide.
- Homebrew. Homebrew is a package manager for the Mac – it makes installing most open source software (like MongoDB) as simple as writing
Installation Overview
There are two primary ways to install MongoDB on a Mac. The best way to install MongoDB is with Homebrew. The other way to install MongoDB is by downloading it from the the MongoDB website.
Install and Run MongoDB with Homebrew
- Open the Terminal app and type
brew update
. - After updating Homebrew
brew install mongodb
- After downloading Mongo, create the “db” directory. This is where the Mongo data files will live. You can create the directory in the default location by running
mkdir -p /data/db
-
Make sure that the
/data/db
directory has the right permissions by running> sudo chown -R `id -un` /data/db > # Enter your password
- Run the Mongo daemon, in one of your terminal windows run
mongod
. This should start the Mongo server. - Run the Mongo shell, with the Mongo daemon running in one terminal, type
mongo
in another terminal window. This will run the Mongo shell which is an application to access data in MongoDB. - To exit the Mongo shell run
quit()
- To stop the Mongo daemon hit
ctrl-c
Install and Run MongoDB by Downloading it Manually
- Go to the MongoDB website’s download section and download the correct version of MongoDB.
-
After downloading Mongo move the gzipped tar file (the file with the extension .tgz that you downloaded) to the folder where you want Mongo installed. In this case, we’ll say that we want Mongo to live in our home folder, and so the commands might look something like this:
> cd Downloads > mv mongodb-osx-x86_64-3.0.7.tgz ~/
-
Extract MongoDB from the the downloaded archive, and change the name of the directory to something more palatable: > cd ~/ > tar -zxvf mongodb-osx-x86_64-3.0.7.tgz > mv mongodb-osx-x86_64-3.0.7 mongodb
- Create the directory where Mongo will store data, create the “db” directory. ou can create the directory in the default location by running
mkdir -p /data/db
-
Make sure that the
/data/db
directory has the right permissions by running> sudo chown -R `id -un` /data/db > # Enter your password
- Run the Mongo daemon, in one terminal window run
~/mongodb/bin/mongod
. This will start the Mongo server. - Run the Mongo shell, with the Mongo daemon running in one terminal, type
~/mongodb/bin/mongo
in another terminal window. This will run the Mongo shell which is an application to access data in MongoDB. - To exit the Mongo shell run
quit()
- To stop the Mongo daemon hit
ctrl-c
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
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
.
$ mongod
MongoDB starting : pid=34022 port=27017 dbpath=/data/db/ 64-bit host=mkyong.local
//...
waiting for connections on port 27017
$ mongo
MongoDB shell version: 2.2.3
connecting to: test
> show dbs
local (empty)
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 :
<?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.