Friday 17 October 2014

How to install mongodb in windows

Sections in this post:

1) Download MongoDB
2) Install MongoDB
3) Create mongo.config Configuration File
4) Start/Shutdown the MongoDB Server
5) MongoDB Windows Service
6) Download/Use MongoDB Java Driver
7) Verify MongoDB Installation

1) Download MongoDB

There are three builds of MongoDB for Windows:
1) MongoDB for Windows Server 2008 R2 edition [Download link]
2) MongoDB for Windows 64-bit [Download link]
3) MongoDB for Windows 32-bit [Download link]

2) Install MongoDB

The given links above will download zip files which you extract directly onto any place in your system of your choice. I have extracted them in “d:/mongodb“. So, all code samples will in this post as well as future posts will refer to this location.
Also, please create following directories inside d:/mongodb
  • D:\mongodb\data
  • D:\mongodb\log

3) Create mongo.config Configuration File

his is important step before marching ahead. Create a normal text file in location d:/mongodb and save it with namemongo.config.
Now place the below configuration options in file. You can change the option’s values at your will.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
##Which IP address(es) mongod should bind to.
bind_ip = 127.0.0.1
 
##Which port mongod should bind to.
port = 27017
 
##I set this to true, so that only critical events and errors are logged.
quiet = true
 
##store data here
dbpath=D:\mongodb\data
  
##The path to the log file to which mongod should write its log messages.
logpath=D:\mongodb\log\mongo.log
 
##I set this to true so that the log is not overwritten upon restart of mongod.
logappend = true
  
##log read and write operations
diaglog=3
 
##It ensures write durability and data consistency much as any journaling scheme would be expected to do.
##Only set this to false if you don’t really care about your data (or more so, the loss of it).
journal = true


4) Start/Shutdown the MongoDB Server

To start the MongoDB server, use below command in command prompt:
mongod.exe --config d:\mongodb\mongo.config
1
2
3
4
D:\mongodb\bin>mongod --config D:\mongodb\mongo.config --journal
2014-05-25T16:51:18.433+0530 warning: --diaglog is deprecated and will be removed in a future release
2014-05-25T16:51:18.434+0530 diagLogging level=3
2014-05-25T16:51:18.435+0530 diagLogging using file D:\mongodb\data/diaglog.5381d22e
To connect to MongoDB from command prompt, use below command:
d:\mongodb\bin>mongo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
D:\mongodb\bin>mongo
MongoDB shell version: 2.6.1
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see   http://docs.mongodb.org/
Questions? Try the support group   http://groups.google.com/group/mongodb-user
Server has startup warnings:
2014-05-25T16:52:09.158+0530 [initandlisten]
2014-05-25T16:52:09.158+0530 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.
2014-05-25T16:52:09.158+0530 [initandlisten] **       32 bit builds are limited to less than 2GB of data (or less with --jour
nal).
2014-05-25T16:52:09.158+0530 [initandlisten] **       See http://dochub.mongodb.org/core/32bit
2014-05-25T16:52:09.158+0530 [initandlisten]

To shutdown the MongoDB server, you must be authorized user. So after getting auth complete, use below command in command prompt:
db.shutdownServer()
1
2
3
4
5
6
7
8
9
10
11
12
13
> use admin
switched to db admin
> db.shutdownServer()
2014-05-25T19:55:25.221+0530 DBClientCursor::init call() failed
server should be down...
2014-05-25T19:55:25.224+0530 trying reconnect to 127.0.0.1:27017 (127.0.0.1) failed
2014-05-25T19:55:26.225+0530 warning: Failed to connect to 127.0.0.1:27017, reason: errno:10061 No connection could be made b
ecause the target machine actively refused it.
2014-05-25T19:55:26.225+0530 reconnect 127.0.0.1:27017 (127.0.0.1) failed failed couldn't connect to server 127.0.0.1:27017 (
127.0.0.1), connection attempt failed
> quit()
 
D:\mongodb\bin>

5) MongoDB Windows Service

To install the window service, use below command:
mongod --config D:\mongodb\mongo.config --install
Start the windows service from command prompt:
net start MongoDB
Stop the windows service from command prompt:
net stop MongoDB
Remove the windows service
mongod --remove
Sample run of all above four commands is below:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
D:\mongodb\bin>mongod --config D:\mongodb\mongo.config --install
2014-05-25T20:07:41.191+0530 warning: --diaglog is deprecated and will be removed in a future release
2014-05-25T20:07:41.192+0530 diagLogging level=3
2014-05-25T20:07:41.193+0530 diagLogging using file D:\mongodb\data/diaglog.53820035
 
D:\mongodb\bin>net start MongoDB
 
The MongoDB service was started successfully.
 
 
D:\mongodb\bin>net stop MongoDB
System error 109 has occurred.
 
The pipe has been ended.
 
 
D:\mongodb\bin>mongod --remove
2014-05-25T20:09:32.514+0530
2014-05-25T20:09:32.515+0530 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you wa
nt durability.
2014-05-25T20:09:32.515+0530
2014-05-25T20:09:32.518+0530 Trying to remove Windows service 'MongoDB'
2014-05-25T20:09:32.520+0530 Service 'MongoDB' removed
 
D:\mongodb\bin>

6) Download/Use MongoDB Java Driver

Download the MongoDB java driver (mongo-java-driver-2.9.3.jar) from this download link. It’s a jar file you need to include in your classpath/ copy in lib folder in project where you want to use MongoDB.


7) Verify MongoDB Installation

To verify that MongoDB has been installed and working properly, execute below program:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package examples.mongodb.install;
 
import java.net.UnknownHostException;
import java.util.List;
 
import com.mongodb.MongoClient;
 
public class VerifyMongoDBInstallation {
    public static void main(String[] args) throws UnknownHostException {
        MongoClient mongo = new MongoClient("localhost", 27017);
 
        List<String> dbs = mongo.getDatabaseNames();
        for (String db : dbs) {
            System.out.println(db);
        }
    }
}
 
Output:
 
local
admin