Foi fácil conectar-me ao meu servidor mysql remoto na AWS usando um sequelpro , no entanto, estou lutando para fazer o mesmo com o mongodb.
Eu tentei configurar um túnel ssh via linha de comando da seguinte maneira:
ssh -fN -l root -i path/to/id_rsa -L 9999:host.com:27017 host.com
Eu também tentei substituindo host por um endereço IP
a idéia é encaminhar todas as conexões mongodb na porta 9999 para aquela no host da porta 27101 .. no entanto, quando executo o comando:
mongo --host localhost --port 9999
a conexão falha, eu recebo isso:
MongoDB shell version: 2.6.0
connecting to: localhost:9999/test
channel 2: open failed: connect failed: Connection timed out
channel 3: open failed: connect failed: Connection timed out
2014-05-22T14:42:01.372+0300 DBClientCursor::init call() failed
2014-05-22T14:42:01.374+0300 Error: DBClientBase::findN: transport error: localhost:9999 ns: admin.$cmd query: { whatsmyuri: 1 } at src/mongo/shell/mongo.js:148
exception: connect failed
se eu executar sudo netstat -plnt
, recebo o seguinte (que parece em ordem):
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 4242/node
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1342/httpd2-prefork
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2552/sshd
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 2505/master
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 11719/mongod
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 16561/redis-server
alguma ideia do que estou fazendo de errado?
update: é assim que o comando funcional final se parece (o crédito vai para o kenster ):
ssh -fN -i ~/path/to/id_rsa -L 6666:localhost:27017 [email protected]
onde o -fN
comando faz com que este comando seja executado em segundo plano
-L
parece contradizer a página de manual do ssh:-L [bind_address:]port:host:hostport Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.
diz explicitamente quehost
é o host do servidor remoto .. você está usando o local?Fiz algumas configurações na minha caixa do Ubuntu 18 Vagrant para conectar com êxito o MongoDB remotamente usando o Robo 3T GUI. Eu expliquei nas etapas a seguir.
Dentro do mongo shell, digite o seguinte comando para criar um novo usuário administrador.
Por padrão, o mongodb está configurado para permitir conexões apenas do host local (IP 127.0.0.1). Precisamos permitir conexões remotas a partir de qualquer endereço IP. A seguinte mudança deve ser feita apenas no seu servidor de desenvolvimento. Abra o arquivo etc / mongod.conf e faça a seguinte alteração.
Também no mesmo arquivo mongod.conf, descomente a opção de segurança e inclua a opção de autorização, como mostrado abaixo.
Salve e saia do arquivo mongod.conf e reinicie o servidor mongodb.
Baixe e instale a ferramenta Robo 3T GUI.
Na Robo 3T GUI, nas configurações de conexão, você precisa fazer algumas alterações, conforme mostrado nas capturas de tela abaixo.
Digite o nome de usuário e a senha do banco de dados administrativo mongodb que você criou anteriormente.
Aqui, digitei minhas credenciais de caixa ssh do Ubuntu 18 Vagrant.
Salve as alterações e pressione o ícone conectar para ver se a conexão está funcionando bem.
fonte