Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Setup MongoDB on Windows Server 2008

I'm new to mongoDB and like it so far, I work local for my dev where I have mongo running as service on Win7. I have it allso running as a service on my VPS on Win server 2008. When I am on the server it works fine but I don't know hos to set it up so I can acces it from outside of the server? Can't find any good documentation on that. Also, I'm having hard time to do backup/restore on the server from my local computer since I can't see it from outside of the server.

I would like to have more information also on the master/slave and hos to set this up properly.

When I run netstat -anb I get

  TCP    127.0.0.1:27017        0.0.0.0:0              LISTENING
 [mongod.exe]
  TCP    127.0.0.1:27017        127.0.0.1:62990        ESTABLISHED
 [mongod.exe]
  TCP    127.0.0.1:28017        0.0.0.0:0              LISTENING

That's all I have for mongod.exe

[Edit]

I tried to reinstall with --bind_ip xxx.x.x.xx and now the xxx.x.x.xx:27017 works but only on the remote server, if I try to access from anywhere it fails.

Also, I turned off the firewall and it does not change anything.

Thanks a lot!

like image 883
VinnyG Avatar asked Oct 08 '10 14:10

VinnyG


4 Answers

Install mongo and setup

  1. Install mongodb with windows service checked

  2. Allow specific port in firewall: 27017

  3. In the mongod.cfg (at C:\Program Files\MongoDB\Server\4.4\bin), just comment bindIp: 127.0.0.1 and add new line bindIp: 0.0.0.0:

    # network interfaces
    net:
      port: 27017
    #  bindIp: 127.0.0.1
      bindIp: 0.0.0.0

Last two steps will allow you remote access

create user

  1. Open cmd go to path of installation, for example C:\Program Files\MongoDB\Server\4.4\bin

  2. in cmd type mongo C:\Program Files\MongoDB\Server\4.4\bin>mongo

  3. then type use admin (admin is database) and at the end

  4. db.createUser( { user: "adminName", pwd: "xxxxxx", roles: ["readWrite"] })

  5. restart mongo service in services

like image 57
Dado Avatar answered Nov 15 '22 14:11

Dado


I think I found how to achieve it. First of all, allow the port 27017 on your firewall. Then I installed Mongo as a service using a configuration file. I created the mongos.conf like this:

dbpath = d:\mongo\data
logpath = d:\mongo\logs
noauth = true # use 'true' for options that don't take an argument

I saved it under: d:\mongo\mongos.conf

Then I did this in the command line:

mongod --config d:\mongo\mongos.conf --reinstall

The key is to make sure there is no bind_ip config key in your configuration file. So it will allow mongo to be binded to any ip. You should then be able to go to

http://localhost:27017 and see the following message:

You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number

And you should also be able to go to:

http://192.168.x.x:27017 (your ip) and you should see the same output.

like image 33
Charles Ouellet Avatar answered Nov 15 '22 14:11

Charles Ouellet


In the mongod.cfg (at C:\Program Files\MongoDB\Server\4.0\bin), just update:

# network interfaces
net:
  port: 27017
#  bindIp: 127.0.0.1
  bindIp: 0.0.0.0

let the mongo db bing to 0.0.0.0 i.e. all interfaces and not only 127.0.0.1. Then it will allow connections to all interfaces.

like image 42
sandyiit Avatar answered Nov 15 '22 16:11

sandyiit


Try running this command from an admin DOS prompt to open external access to the default MongoDB port 27017:

C:\> netsh.exe advfirewall firewall add rule name="MongoDB (port 27017)"
        dir=in action=allow protocol=TCP localport=27017
like image 39
Chris Fulstow Avatar answered Nov 15 '22 16:11

Chris Fulstow