mongoDB não se conectará remotamente

6

Eu instalei o mongoDB em uma máquina virtual redhat no EC2.

O servidor está funcionando perfeitamente localmente, posso conectar e executar comandos, etc. Agora, tentei me conectar remotamente a partir de outra máquina virtual no EC2, mas não consigo conectar independentemente do quanto estou tentando. No começo eu pensei que era um problema de grupos de segurança, então eu tentei habilitar todas as portas de dentro do grupo (ambas as máquinas virtuais pertencem aos mesmos grupos de securidades) Eu também habilitei conexões no arquivo iptables (e sim, reiniciei o serviço) mas ainda não funciona ... Alguma idéia sobre o problema?

o erro que recebo é:

MongoDB shell version: 2.0.2
connecting to: ec2-XXXX.eu-west-1.compute.amazonaws.com/test
Thu Jan  5 13:55:32 Error: couldn't connect to server ec2-XXXX.eu-west-1.compute.amazonaws.com shell/mongo.js:86
exception: connect failed

Agradeço antecipadamente.

Em relação à configuração "bind_ip", bem ... não existe um valor padrão para isso, quero dizer que não existe uma linha bind_ip no mongodb.conf, por padrão. Eu provavelmente estava esperando algo como bind_ip = 127.0.0.1 para que eu pudesse comentar, mas não estava lá, então eu tentei com bind_ip = 0.0.0.0 mas ainda assim, não está funcionando também.

    
por Enrico Tuttobene 05.01.2012 / 19:57

5 respostas

6

RESOLVIDO! para qualquer pessoa que esteja usando a instalação do redhat padrão do EC2, você precisa executar este comando:

system-config-firewall-tui

    
por 06.01.2012 / 12:11
6

Espero que isso ajude. Você precisa explicitamente dizer ao mongodb para escutar em dispositivos não-localhost. Por padrão, ele é executado apenas no host local.

Em link :

IP Address Binding By default, a mongod server will listen on all available IP addresses on a machine. You can restrict this to a single IP address with the 'bind_ip' configuration option for mongod.

Typically, this would be set to 127.0.0.1, the loopback interface, to require that mongod only listen to requests from the same machine (localhost).

To enable listening on all interfaces, remove the bind_ip option from your server configuration file.

Atualização: Acho que estava confuso. Eu pensei que o comportamento padrão era diferente do que foi descrito acima. (Talvez costumava ser?) Em qualquer caso, você deve verificar o seu arquivo de configuração mongo para se certificar de que você tem configurado como você espera.

    
por 06.01.2012 / 00:51
2

Com o mongoDB server versão 3.6.4, Ubuntu 16.4.4 eu resolvi isso configurando a seção net em /etc/mongod.conf assim:

net:
  port: 27017
  bindIpAll: true
#  bindIp: 127.0.0.1
    
por 27.04.2018 / 10:31
1

Fico feliz em ver que a modificação do firewall resolveu os problemas. Não esqueça as outras recomendações do EC2 (noatime no sistema de arquivos, comunicação entre regiões e outros) aqui:

link

Há também um excelente white paper sobre como dimensionar e implantar no EC2:

link

    
por 24.01.2012 / 21:13
1

Se você estiver usando aws, certifique-se de que o grupo de segurança permita a porta 27017. Eu perdi duas horas da minha vida imaginando isso.

    
por 02.05.2013 / 14:57