3
votes

I've recently installed mongodb on my CentOS 6 VM running on Vagrant.

I added port forwarding to Vagrantfile to forward the mongo port

config.vm.forward_port 27017, 127017

I configured mongod to start automatically when the server starts and have confirmed that the service starts as intended.

however when i run mongo localhost:127017 from my host machine (not vagrant) i get the following error

MongoDB shell version: 1.8.2
connecting to: localhost:127017/test
Fri Jan 20 13:58:28 getaddrinfo("127.0.0.1") failed: nodename nor servname provided, or not known
Fri Jan 20 13:58:28 Error shell/mongo.js:81
exception: connect failed

any ideas?

4
I'm not able to reproduce using centos 6.2 w/ mongodb 2.0.2. What kind of box are you running and where did you get it from?Tyler Brock
This issue comes from trying to query the mongo server on vagrant (centos 6) from the host machine (MacOSX)joseym
do you have any other ports forwarded that are working (80, 22)? Also, port forwarding requires a virtual machine restart, or VirtualBox won't pick up the ports.Adam Comerford
Does telnetting into that port form OSX work for you? I think it could be a firewall issue, and unless you setup the virtualbox box yourself I wouldn't trust it. Could have all sorts of issues.Tyler Brock
Adam C - Yes, port 80 successfully forwards to 8080 and i have rebooted the vm several times.joseym

4 Answers

9
votes

TCP port numbers are 16-bit unsigned, which mean the max value is 65535 (2^16), and you're trying with 127017.

19
votes

You will need to set the mongod bind_ip to 0.0.0.0 instead of 127.0.0.1 (which is the loopback address) so that all interfaces can access it.

0
votes

Can you connect to the mongo server from vagrant ssh? If not, you might want to make sure that mongod is running.

Do you have an ip_bind set up in your mongodb.conf or mongod startup script? (If you do, you might want to unset it--not exactly sure how vagrant's port forwarding works, but this might be what's causing the problem.)

-3
votes

bind_ip to 0.0.0.0 does not work. Try bind_ip=127.0.0.1,10.0.0.25, that worked for me.