How to Install and Start MongoDB

Install and Start a MongoDB Server

Before a MongoDB server can be started, the binaries must be installed on the machine. In case of a Linux machine execute the following command to do this:

$ sudo apt-get install mongodb

In case you want to install MongoDB on a Mac, you can execute the following command:

$ sudo brew install mongodb

After the installation succeeded, it is required to create a directory on the machine where the MongoDB process should save its data. This folder can be named and placed on any location on the server. To follow this tutorial, let's just create a data directory in the home directory:

$ mkdir ~/mongodb-tutorial

Last but not least we can start the MongoDB server process, by executing:

$ mongod --dbpath ~/mongodb-tutorial

Note: The MongoDB server now runs without authentication. This means everybody who can reach the listening socket of the MongoDB process, can connect to the database as admin user without providing an username/password.

To enable authentication, create an user, stop the MongoDB process and start it again with the following option:

$ mongod --dbpath ~/mongodb-tutorial --auth

Connect the MongoDB Command Line Client to the Server

To establish a connection from your terminal to the MongoDB server type the following command in a new terminal window:

$ mongo localhost:27017

If you've started the server locally with the default configuration, then you are ready to go. There is no authentication configured by default and you've full admin privileges. You should see the following output if everything works:

$ mongo localhost:27017
MongoDB shell version: 3.2.0
connecting to: localhost:27017/test
Server has startup warnings:
2016-01-05T00:00:21.969+0100 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2016-01-05T00:00:21.969+0100 I CONTROL [initandlisten]
2016-01-05T00:00:21.969+0100 I CONTROL [initandlisten]
2016-01-05T00:00:21.969+0100 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
>

In case the MongoDB server is configured with authentication - that should be the case for each production setup - you have to provide an username, a password and if your user only has access rights to one database you also must provide the name of this database:

$ mongo localhost:27017/[database-name] -u [username] -p [password]

Providing the password as a mongo parameter has the drawback that the password appears in the command history. This means it could be visible to other people that also has access to this workstation. To prevent this you can authentication as follow:

$ mongo localhost:27017/[database-name]
> db.auth('[username]', '[password]')