mongo - não foi possível conectar ao servidor 127.0.0.1:27017

163

Venho de riak e redis, onde nunca tive problemas com a inicialização ou a interação desses serviços.

Este é um problema generalizado com o mongo e sou bastante ignorante. Reiniciar não ajuda.Eu sou novo no mongo.

mongo
MongoDB shell version: 2.2.1
connecting to: test
Fri Nov  9 16:44:06 Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91
exception: connect failed

É o que vejo nos logs.

 now open)
Fri Nov  9 16:44:34 [conn47] end connection 10.29.16.208:5306 (1 connection now open)
Fri Nov  9 16:45:04 [initandlisten] connection accepted from 10.29.16.208:5307 #48 (2 connections now open)
Fri Nov  9 16:45:04 [conn48] end connection 10.29.16.208:5307 (1 connection now open)
Fri Nov  9 16:45:04 [initandlisten] connection accepted from 10.29.16.208:5308 #49 (2 connections now open)
Fri Nov  9 16:45:04 [conn49] end connection 10.29.16.208:5308 (1 connection now open)
Fri Nov  9 16:45:34 [initandlisten] connection accepted from 10.29.16.208:5316 #50 (2 connections now open)
Fri Nov  9 16:45:34 [conn50] end connection 10.29.16.208:5316 (1 connection now open)
Fri Nov  9 16:45:34 [initandlisten] connection accepted from 10.29.16.208:5317 #51 (2 connections now open)
Fri Nov  9 16:45:34 [conn51] end connection 10.29.16.208:5317 (1 connection now open)
Fri Nov  9 16:46:04 [initandlisten] connection accepted from 10.29.16.208:5320 #52 (2 connections now open)
Fri Nov  9 16:46:04 [conn52] end connection 10.29.16.208:5320 (1 connection now open)
Fri Nov  9 16:46:04 [initandlisten] connection accepted from 10.29.16.208:5321 #53 (2 connections now open)
Fri Nov  9 16:46:04 [conn53] end connection 10.29.16.208:5321 (1 conn
Tampa
fonte
2
Como o IMO não tem nada a ver com a programação em si, eu recomendo que você faça essa pergunta no serverfault.com .
Cimnine
2
Eu também estava enfrentando o mesmo problema. Sua cus Não mongo capaz de cria pasta em C: / data / db Eu segui este tut mkyong.com/mongodb/how-to-install-mongodb-on-windows
AÇO
Eu enfrentei o mesmo erro ao usar o laptop da minha empresa e instalar o MongoDB no C :. Devido a privilégios administrativos e ao fato de eu ser solicitado com meu nome de usuário e senha de administrador toda vez que instalo algo ou modifico qualquer coisa em C :, esse foi o motivo pelo qual não consegui colocar o mongodb funcionando. Depois de instalá-lo no D:, tudo funcionou bem.
paranza

Respostas:

47

Este erro é o que você veria se o shell do mongo não pudesse conversar com o servidor mongod.

Isso pode ocorrer porque o endereço estava errado (host ou IP) ou porque não estava em execução. Uma coisa a observar é que o rastreamento de log fornecido não cobre o "Fri Nov 9 16:44:06" do seu mongo timestamp.

Você pode:

  1. Forneça os argumentos da linha de comando (se houver) usados ​​para iniciar seu processo mongod
  2. Fornecer a atividade do arquivo de log a partir da inicialização do mongod, bem como os logs durante a tentativa de inicialização do mongo shell?
  3. Confirme se o seu processo mongod está sendo iniciado na mesma máquina que o shell mongo?
Jenna
fonte
281

Normalmente, isso é causado porque você não iniciou o processo mongod antes de tentar iniciar o mongo shell.

Iniciar servidor mongod

mongod

Abra outra janela do terminal

Iniciar o mongo shell

mongo
Ravi Hamsa
fonte
3
Neste caso, funcionou para mim, eu tinha que fazer ~> sudo mongod --dbpath / dbpathlocation e, em seguida, abriu o novo terminal para executar mongo ...
Saji
5
o que funcionou para mim no macOS Sierra sudo mongode depois:mongo
Amin Jafari
Eu tive que criar um diretório / data / db antes de executar o mongod
College Student
Não acredito que tudo o que eu precisava fazer era executar mongodem segundo plano ou em outro shell antes de executar mongo. Grite para Ravi Hamsa !
Kareem Jeiroudi
Trabalhou para mim como charme!
Sobhit Sharma 12/12/19
86

Resolvido.

Esse problema pode ser resolvido pelas 4 etapas abaixo mencionadas

1) Remova o arquivo .lock

sudo rm /var/lib/mongodb/mongod.lock 

2) repare o mongodb

mongod -–repair

3) inicie o servidor mongod

sudo service mongod start 

4) inicie o cliente mongo

mongo

Para obter mais detalhes, consulte http://shakthydoss.com/error-couldnt-connect-to-server-127-0-0-127017-srcmongoshellmongo-js-exception-connect-failed/

http://shakthydoss.com/technical/error-couldnt-connect-to-server-127-0-0-127017-srcmongoshellmongo-js-exception-connect-failed/

shakthydoss
fonte
4
Imaginando, o que é o /var/lib/mongodb/mongod.lock e o que deu errado?
ozn
O item 2 no Ubuntu 18.04 émongod --repair
Aline Matos
43

Este método funciona apenas se você deseja reparar seus arquivos de dados sem preservar os arquivos originais

Para descobrir onde o dbpath reside - vim /etc/mongodb.conf

verifique a opção dbpath =

(Eu tenho dbpath = / var / lib / mongodb)

Padrão: / data / db /

Os locais típicos incluem: / srv / mongodb, / var / lib / mongodb ou / opt / mongodb.

Substitua o / var / lib / mongodb pelo seu dbpath

sudo rm /var/lib/mongodb/mongod.lock
sudo mongod --dbpath /var/lib/mongodb/ --repair
sudo mongod --dbpath /var/lib/mongodb/ --journal

(Certifique-se de deixar o terminal em execução no qual você correu acima das linhas, não pressione 'Ctrl + c' ou o encerre.) Digite o comando para iniciar o mongo agora em outra janela.

Espero que funcione para voce ! para quem deseja reparar seus arquivos de dados, preservando os arquivos originais do mongo recover

poorva
fonte
1
trabalhar no ubuntu. --journal corrigiu meu problema. O que realmente faz? para que serve --journal?
grep
Trabalhou para mim no fedora 20. Agora podemos fechar a primeira janela do terminal?
Khayam Gondal
26

MAC OS

Verificar status

brew services list

Algo como:

Name    Status  User Plist
mongodb stopped  

inicie

brew services start mongodb

Tente de novo

mongo ou mongo --port 27017

William Hu
fonte
1
Isso me ajudou em +1.
Sandeep
Não funcionou para mim. Estou lutando para lidar com este MongoDB há uma hora. Uau!!!
Glenn
isso me ajudou, obrigado ..
Iam ByeBlogs
15

No meu caso:

Primeiro eu abro o arquivo de configuração

sudo vi /etc/mongodb.conf

Comente IP e Port como este

#bind_ip = 127.0.0.1
#port = 27017

Em seguida, reinicie o mongodb

sudo service mongodb restart
sudo service mongod restart

Finalmente, é trabalho: D

finn@Finn ~ $ mongo
MongoDB shell version: 2.4.9
connecting to: test
> exit
Finlandês
fonte
A remoção do ip / porta não funcionou para mim. Na verdade, ele quebrou o servidor ainda mais. O serviço se recusou a começar a voltar-se de novo ...
Cerin
1
Tenha cuidado com bind_ip. Se você comentar isso, permitirá conexões remotas ao seu banco de dados, o que é obviamente uma péssima idéia, a menos que você tenha uma configuração de segurança e autenticação. Eu acredito que o MongoDB não tem usuários ou senha por padrão, então você precisa estar ciente disso.
agm1984
Trabalhe para mim também, mas não sei sobre segurança após o comentário do @ agm1984, apenas o utilizarei no modo de desenvolvimento e depois utilizarei o Atlas Cloud of Mongodb, mais seguro no meu caso, eu acho (com os servidores ruins do meu servidor) Habilidades: D)
Adrien V
1
@AdrienV claro, é arriscado se você remover a ligação IP local, pois ela permitirá o acesso da Internet. Esta é apenas uma solução alternativa para o servidor de desenvolvimento.
Finn
bind_ip foi definido como um IP desconhecido adicional. Excluí-lo resolveu o erro / db / data ... ufff
zevero 22/11/19
14

Verifique se o seu mongo está funcionando. Corrigi esse problema tentando reparar o mongodb, e descobri que o diretório necessário para a execução do db não foi criado. Mostra este erro

Digite mongod:, mostrará o erro

exception in initAndListen: 29 Data directory /data/db not found., terminating

Ocorreu um erro porque o dbpath /data/db/(configuração padrão) não existe. Você precisa criar uma pasta de dados e definir permissão para ela.

Então eu crio uma pasta no meu sistema pelo comando

sudo mkdir -p / data / db / e sudo chown id -u/ data / db

então eu corro o mongo novamente e funcionou.

Bipul Chandra Dev Nath
fonte
14

Um pouco tarde demais com a resposta, mas encontrei o mesmo problema

A seguir estão os passos que me ajudaram.

  1. Vá para C: \
  2. Criar pasta "dados"
  3. Em "dados", crie a pasta "db"
  4. terminal aberto (CMD) -> vá para EX: " c:\MongoDB\Server\3.4\bin"
  5. digite mongod => isso iniciará o servidor mongo (deixe aberto)

Executar usando uma GUI, EX "robomongo"

Ou

abra novo terminal (CMD) -> vá para EX: " c:\MongoDB\Server\3.4\bin" digite o comando "mongo"

Metin Atalay
fonte
12

Sou usuário do Windows e instalei o MongoDB em novembro de 2018 e não queria configurar diretórios data / db. Mas depois de alguns dias, quando abro, recebi uma mensagem de erro:

MongoDB shell version v4.0.4
connecting to: mongodb://127.0.0.1:27017
2018-12-05T20:42:40.108+0530 E QUERY    [js] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: No connection could be made because the target machine actively refused it. :
connect@src/mongo/shell/mongo.js:257:13
@(connect):1:6
exception: connect failed

Então tentei corrigir usando todas as respostas acima e não funcionou. Quando tentei rodar o mongod, ele disse

MongoDB starting : pid=12220 port=27017 dbpath=C:\data\db\ 64-bit host=bla

Tentei alterar o caminho do banco de dados (para arquivos de programa) através do sistema de arquivos e também usando o cmd, mas esses não funcionaram.

A solução que funcionou para mim é:

Abriu a guia Gerenciador de tarefas ( ctrl + shift + esc) -> Serviços e havia uma linha do MongoDB com o status parado . Então eu cliquei com o botão direito e cliquei em iniciar e tudo funcionando perfeitamente :) .

Blasanka
fonte
6

Se toda a solução acima não funcionar: vá para service ( start>search>services) e inicie o serviço mongodb. Em um prompt de cmd, depois de ir para a lixeira, digite:/>mongo

Khalid
fonte
5

Para conectar-se ao mongo, precisamos primeiro iniciar os serviços 'mongod'. Na saída a seguir, você pode ver:

$ mongod
2017-03-05T00:31:39.055+0530 I CONTROL  [initandlisten] MongoDB starting : pid=1481 port=27017 dbpath=/data/db 64-bit host=Prabhu-Nandans-Mac.local
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] db version v3.4.2
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] git version: 3f76e40c105fc223b3e5aac3e20dcd026b83b38b
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2k  26 Jan 2017
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] allocator: system
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] modules: none
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] build environment:
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten]     distarch: x86_64
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten]     target_arch: x86_64
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] options: {}
2017-03-05T00:31:39.056+0530 W -        [initandlisten] Detected unclean shutdown - /data/db/mongod.lock is not empty.
2017-03-05T00:31:39.057+0530 I -        [initandlisten] Detected data files in /data/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
2017-03-05T00:31:39.057+0530 W STORAGE  [initandlisten] Recovering data from the last clean checkpoint.
2017-03-05T00:31:39.057+0530 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=3584M,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] 
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] 
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] 
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
2017-03-05T00:31:39.643+0530 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
2017-03-05T00:31:39.643+0530 I NETWORK  [thread1] waiting for connections on port 27017
2017-03-05T00:31:40.008+0530 I FTDC     [ftdc] Unclean full-time diagnostic data capture shutdown detected, found interim file, some metrics may have been lost. OK
2017-03-05T00:32:03.832+0530 I NETWORK  [thread1] connection accepted from 127.0.0.1:49806 #1 (1 connection now open)
2017-03-05T00:32:03.833+0530 I NETWORK  [conn1] received client metadata from 127.0.0.1:49806 conn1: { application: { name: "MongoDB Shell" }, driver: { name: "MongoDB Internal Client", version: "3.4.2" }, os: { type: "Darwin", name: "Mac OS X", architecture: "x86_64", version: "16.4.0" } }
2017-03-05T00:32:08.376+0530 I -        [conn1] end connection 127.0.0.1:49806 (1 connection now open)

Depois disso, abra outro terminal e digite 'mongo'.

A seguir está a saída que você pode ver:

$ mongo
MongoDB shell version v3.4.2
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.2

Seu problema foi resolvido :)

Prabhu Nandan Kumar
fonte
4

Eu também tenho o mesmo problema, então fui corrigido por essas duas linhas de código. Espero que ajude

systemctl start mongod
systemctl enable mongod
Bahodir Boydedayev
fonte
Corrigido o meu problema!
S.M_Emamian
3

Enfrento o mesmo problema depois de pesquisar muito, resolvo isso seguindo:

sudo service mongodb stop 

sudo rm /var/lib/mongodb/mongod.lock 

sudo mongod --repair --dbpath /var/lib/mongodb 

sudo mongod --fork --logpath /var/lib/mongodb/mongodb.log --dbpath /var/lib/mongodb 

sudo service mongodb start
Rohit Gaidhane
fonte
isso funcionou! mas é temporário, quando reinicio o sistema, ele não funcionou novamente.
Predator X
2

Você pode tentar com o seguinte comando:

sudo service mongod start

shivam kumar chaturvedi
fonte
2

Isso estava acontecendo comigo hoje e eu resolvi da seguinte maneira.

Máquina: estou usando a máquina Windows 10 e baixei a versão mais recente do MongoDB - Community.

Então, o problema era que eu não C:\data\dbcriei.

Sem criar C:\data\db, abri o terminal CMD e iniciei o banco de dados usando o mongodcomando no terminal

C: \ YourInstallationPath \ bin> mongod

E quando eu demiti mongo comando, estava tendo o problema.

Twist, criei as pastas necessárias, mas ainda estava recebendo o problema. E isso ocorre porque o servidor mongo já estava em execução. Para corrigi-lo, ativei o mongodcomando novamente e ele referenciou automaticamente C:\data\db.

Outros usuários sugeriram adicionar, C:\data\dbmas não falaram em executar mongodnovamente, o que resolveu exatamente o meu problema.

Amnesh Goel
fonte
2

Eu tive o mesmo problema para conectar o mongodb após a instalação usando o brew no macOS.

O problema também foi, mongod.lockmas antes eu tinha o mongodb 3.6 instalado e o diretório do banco de dados era /usr/local/var/mongodbe ele possui arquivos emongod.lock

Simples, mudei meus arquivos antigos de banco de dados para uma pasta diferente e removi tudo de /usr/local/var/mongodb

Então reiniciado:

brew services restart mongodb

E está funcionando bem agora.

Mandeep Gill
fonte
2

no meu caso no windows e no ubuntu, eu precisava criar uma /data/dbpasta no root. No ubuntu, eu precisava de uma opção adicional; para conceder permissões para o diretório.

janelas

mkdir c:/data/db

ubuntu:

sudo mkdir -p /data/db
sudo chmod 700 /data/db

então corra

sudo service mongod start

Verifica

sudo service mongod status

e depois corra

mongo
Віталій Мартиненко
fonte
2

Eu estava recebendo esse erro no ubuntu, mas você pode tentar com o seguinte comando:

sudo service mongod start
Rahul
fonte
1

Outra solução que resolveu esse mesmo erro para mim, embora este possa ser apenas se você estiver acessando o mongo (localmente) através de uma conexão SSH através de uma máquina virtual (pelo menos essa é a minha configuração), e pode ser um problema de variável de ambiente específico do linux:

export LC_ALL=C

Além disso, tive mais sucesso ao executar o mongo como um serviço daemon, em seguida, com o serviço sudo start, meu entendimento é que ele usa argumentos de linha de comando, e não o arquivo de configuração, portanto, provavelmente é um problema no meu arquivo de configuração:

mongod --fork --logpath /var/log/mongodb.log --auth --port 27017 --dbpath /var/lib/mongodb/admin
edencorbina
fonte
1

Crie a pasta C: data / db se ela ainda não existir no seu computador. Acontece que o MongoDB requer a existência dessa estrutura de pastas 'data / db' para ser executada. Espero que isso ajude alguém.

Amin Balogun
fonte
1

A causa por mim foi o espaço - execute isso no console:

df -h

ou mais especificamente:

du -hs /var/lib/mongodb/ 

para verificar o uso do disco. Se for ~ 99% - limpe um pouco de espaço e tente novamente!

tsveti_iko
fonte
1

Primeiro, vá para c:\mongodb\bin>ativar o mongoDB, se você vir no console que o mongo está escutando na porta 27017, tudo bem. Caso contrário, feche o console e crie uma pasta c:\data\dbe inicie o mongod novamente

Monte Cristo
fonte
1

se toda a solução acima não der certo, talvez essa seja uma das maneiras de ajudar. Em algum lugar abaixo da linha, você pode ter feito conexão com o banco de dados local do mongodb através de caixas vagrantes.

  1. vagrant up e depois ssh na sua máquina vagrant na qual você fez conexão com o mongodb (vagrant ssh vagrant_box_name)
  2. comente a linha bind_ip em /etc/mongod.conf usando # (sudo nano /etc/mongod.conf)
  3. reinicie o serviço daemon mongodb (sudo service mongod restart) voila ...
Ashwin J Chhetri
fonte
1

Inicie o serviço monogdb usando

sudo service mongod start 

a partir da nova janela ou terminal, inicie o mongo client usando

mongo
MILHÕES DE GASHAW
fonte
0

Remova o arquivo mongod.lock. E execute "mongod -repair". O serviço de desinstalação / reinstalação do mongod corrigiu esse problema para mim.

Obrigado.

Tun
fonte
0

Finalmente eu entendi isso é de uma maneira simples ..

abra o terminal e vá para o local do mongodb. No meu caso é

e:\mongodb\bin> 

e digite o seguinte comando e pressione enter ..

mongod --config e:\mongodb\mongo.config

Abra outro terminal e inicie o mongodb usando

mongo.exe

É isso .. você pode usar mongo

Santhosh Kumar
fonte
0

Esta é uma pergunta antiga, mas, como um novato, pensei em acrescentar que (usando o Webstorm) você precisa clicar no Mongo Explorer (guia na extremidade direita da sua janela). De lá:

Configurações -Clique. -Clique no botão Procurar (parece um botão com "..."). -Vá para Arquivos de programa> MongoDB> Servidor> 3.4> bin> mongo.exe (sua versão pode ser diferente de 3.4) -Depois disso, clique no sinal de mais verde à direita. Uma janela será aberta - Digite um nome no slot "Label". -Clique em Aplicar.

Agora você deve estar conectado. Entrar "mongod" no terminal não é suficiente. Você também deve executar as etapas acima.

Peço desculpas antecipadamente àqueles que não estão usando o Webstorm! Não tenho certeza sobre as etapas usando outros IDE.

David Mitchell
fonte
0

se você instalar pelo brew (no osx), sudo mkdir /data/db inicie o mondoDB Daemon digitando mongod(deixe em aberto) e execute o mongo digitando mongona nova guia terminal

majestoso
fonte
0

Simplesmente crie uma pasta chamada "data" na unidade C e dentro da pasta de dados crie outra pasta chamada "db". Em seguida, execute mongod.exe :)

Rohan pawar
fonte
O que faz você pensar que o solicitante possui Windows ou falhou ao instalar o MongoDB?
Nemo