Não foi possível conectar ao servidor 127.0.0.1:27017

160

Estou recebendo o seguinte erro:

alex@alex-K43U:/$ mongo
MongoDB shell version: 2.2.0
connecting to: test
Thu Oct 11 11:46:53 Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91
exception: connect failed
alex@alex-K43U:/$ 

Isto é o que acontece quando tento iniciar o mongodb:

* Starting database mongodb                                             [fail]

Eu já tentei mongo --repair

Criei chown e chmod para var, lib e data / db e log mongodb.

Não tenho certeza do que mais fazer. Alguma sugestão?

mongodb.log:

***** SERVER RESTARTED *****


Thu Oct 11 08:29:40 
Thu Oct 11 08:29:40 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Oct 11 08:29:40 
Thu Oct 11 08:29:41 [initandlisten] MongoDB starting : pid=1052 port=27017 dbpath=/var/lib/mongodb 32-bit host=alex-K43U
Thu Oct 11 08:29:41 [initandlisten] 
Thu Oct 11 08:29:41 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Thu Oct 11 08:29:41 [initandlisten] **       see http://blog.mongodb.org/post/137788967/32-bit-limitations
Thu Oct 11 08:29:41 [initandlisten] **       with --journal, the limit is lower
Thu Oct 11 08:29:41 [initandlisten] 
Thu Oct 11 08:29:41 [initandlisten] db version v2.2.0, pdfile version 4.5
Thu Oct 11 08:29:41 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Thu Oct 11 08:29:41 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Oct 11 08:29:41 [initandlisten] options: { config: "/etc/mongodb.conf", dbpath: "/var/lib/mongodb", logappend: "true", logpath: "/var/log/mongodb/mongodb.log" }
Thu Oct 11 08:29:41 [initandlisten] Unable to check for journal files due to: boost::filesystem::basic_directory_iterator constructor: No such file or directory: "/var/lib/mongodb/journal"
************** 
Unclean shutdown detected.
Please visit http://dochub.mongodb.org/core/repair for recovery instructions.
*************
Thu Oct 11 08:29:41 [initandlisten] exception in initAndListen: 12596 old lock file, terminating
Thu Oct 11 08:29:41 dbexit: 
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to close listening sockets...
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to flush diaglog...
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to close sockets...
Thu Oct 11 08:29:41 [initandlisten] shutdown: waiting for fs preallocator...
Thu Oct 11 08:29:41 [initandlisten] shutdown: closing all files...
Thu Oct 11 08:29:41 [initandlisten] closeAllFiles() finished
Thu Oct 11 08:29:41 dbexit: really exiting now

EDITAR:

Eu removi o bloqueio, então fiz o reparo do mongod e recebi este erro:

Thu Oct 11 12:05:37 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating

então eu fiz isso com o sudo:

alex@alex-K43U:~$ sudo mongod --repair
Thu Oct 11 12:05:42 
Thu Oct 11 12:05:42 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Oct 11 12:05:42 
Thu Oct 11 12:05:42 [initandlisten] MongoDB starting : pid=5129 port=27017 dbpath=/data/db/ 32-bit host=alex-K43U
Thu Oct 11 12:05:42 [initandlisten] 
Thu Oct 11 12:05:42 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Thu Oct 11 12:05:42 [initandlisten] **       see http://blog.mongodb.org/post/137788967/32-bit-limitations
Thu Oct 11 12:05:42 [initandlisten] **       with --journal, the limit is lower
Thu Oct 11 12:05:42 [initandlisten] 
Thu Oct 11 12:05:42 [initandlisten] db version v2.2.0, pdfile version 4.5
Thu Oct 11 12:05:42 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Thu Oct 11 12:05:42 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Oct 11 12:05:42 [initandlisten] options: { repair: true }
Thu Oct 11 12:05:42 [initandlisten] Unable to check for journal files due to: boost::filesystem::basic_directory_iterator constructor: No such file or directory: "/data/db/journal"
Thu Oct 11 12:05:42 [initandlisten] finished checking dbs
Thu Oct 11 12:05:42 dbexit: 
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to close listening sockets...
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to flush diaglog...
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to close sockets...
Thu Oct 11 12:05:42 [initandlisten] shutdown: waiting for fs preallocator...
Thu Oct 11 12:05:42 [initandlisten] shutdown: closing all files...
Thu Oct 11 12:05:42 [initandlisten] closeAllFiles() finished
Thu Oct 11 12:05:42 [initandlisten] shutdown: removing fs lock...
Thu Oct 11 12:05:42 dbexit: really exiting now

Mas ainda está tendo o mesmo problema.

alexchenco
fonte
1
eu acho que esta ligação irá ajudá-lo stackoverflow.com/questions/9647561/... alterando o caminho db de mongo
Med7at
8
sudo service mongod restarttrabalhou para mim
Sudip Bhandari

Respostas:

31

O log indica que o mongodb está sendo finalizado porque há um arquivo de bloqueio antigo.

Se você não está e não estava executando o registro no diário, remova o arquivo de bloqueio, execute o reparo e inicie o mongodb novamente.

Se você está ou estava executando o diário ativado, consulte os documentos relevantes do Mongo DB . Observe que eles dizem "Se você estiver executando com o Registro no diário, não deve fazer um reparo para recuperar para um estado consistente". Portanto, se você estava registrando um diário, o reparo pode ter piorado as coisas.

Trott
fonte
25
É ruim que um reparo possa danificar as coisas!
UpTheCreek
1
Na situação de registro no diário habilitado, o que fazer se eu receber um erro de conexão recusada com muita frequência?
precisa
149
Step 1: Remove lock file.
sudo rm /var/lib/mongodb/mongod.lock

Step 2: Repair mongodb. 
sudo mongod --repair 

Step 3: start mongodb.
sudo start mongodb 
or
sudo service mongodb start

Step 4: Check status of mongodb.
sudo status mongodb 
or   
sudo service mongodb status

Step 5: Start mongo console.
mongo 
Nanhe Kumar
fonte
1
oi Nanhe Kumnar qual é o caminho inicial no terminal. Devemos ir para a pasta cd / usr / local / opt / mongodb / ou outra, estou enfrentando o seguinte problema Vijayvir-Singh: ~ vijayvir $ sudo rm /var/lib/mongodb/mongod.lock rm: / var / lib /mongodb/mongod.lock: Nenhum tal lima ou diretório Vijayvir-Singh: ~ vijayvir $
Vijayvir Cante Pantlia
@vvss primeiro encontre o caminho do arquivo. usa isto. localizar mongod.lock
Nanhe Kumar
9
Na versão 2.4.8, em /data/db/mongod.lockvez de/var/lib/mongodb/mongod.lock
Loolooii 8/11
84

Você correu mongodantes de correr mongo?

Segui as instruções de instalação do mongodb em http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/ e tive o mesmo erro que você somente quando executei mongoantes de executar o processo mongo com mongod. Eu pensei que a instalação do mongodb também o iniciaria, mas você precisa iniciá-lo manualmente mongodantes de fazer qualquer outra coisa que precise do mongodb.

eloone
fonte
10
Este foi o meu problema. Estou surpreso que isso não esteja claro de antemão nos documentos "Introdução ao Mongo".
Jononomo #
Isso realmente não faz sentido do ponto de vista da experiência do usuário. mongo.exedeve ser o que inicia o banco de dados.
Moshe Karmel 22/01
58

Isso ocorre porque o processo mongod está inoperante; você deve executar os comandos abaixo para iniciar o processo mongod:

~$ 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

Espero que isso ajude você.

Javier Gomez
fonte
2
Problema resolvido. Obrigado. Eu adicionaria os comandos sudo service mongod stope sudo service mongodb stopantes do primeiro comando, porque algumas pessoas ainda podem tê-los em execução.
Georgi Georgiev
1
Isso me ajudou a reiniciar o mongo. no entanto, não consigo mais acessar o banco de dados antigo. Você poderia me ajudar aqui?
Ehsan
13

Experimentar

sudo service mongodb start

Isso resolveu meu problema.

潘博韜
fonte
Qual é a diferença entre sudo service mongod startesudo service mongodb start
geckob
Não tenho tanta certeza, mas acho que mongodb é o nome do serviço e mongod é o nome do arquivo do programa.
潘博韜
7

Verifique o espaço livre do seu sistema de arquivos e aumente-o se for menor. Isso também pode fazer com que o mongo não inicie. Verifique o arquivo /var/log/mongodb/mongodb.log.

ERROR: Insufficient free space for journal files
Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles
msnfreaky
fonte
Isso aconteceu comigo e eu adicionei smallfiles = true ao /etc/mongod.conf arquivo
Carlos
7

Tente correr mongodantes mongo.

sudo /usr/sbin/mongod no meu opensuse

Isso resolveu meu problema,

Kiran P.
fonte
6

primeiro, você deve remover o arquivo mongod.lock pelo comando abaixo

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

e, em seguida, reinicie o serviço mongo emitindo o comando abaixo

sudo service mongod restart 
user3470929
fonte
4

Você pode verificar netstat -anp | grep 27017se a porta está sendo usada por outro processo.

Efren
fonte
estranho, eu entendi: alex @ alex-K43U: ~ $ netstat -anp | grep 27017 (Nem todos os processos poderiam ser identificados, informações não-propriedade processo não será mostrado, você teria que ser root para ver tudo.)
alexchenco
2
Esse é um resultado normal ao executar como um usuário não root, pois o netstat mostrará apenas os processos que seu usuário pode ver.
Efren
você pode usar o sudo netstat -anp | grep 27017 para passar esse aviso #
Wiston Coronell
Este funciona para mim, muito obrigado. Eu entendi isso quando executei o código unix 2 [] STREAM 31095 - /tmp/mongodb-27017.sock fornecido e removi o arquivo .sock, agora está tudo bem.
Abel
4

No Windows, execute o cmd como Admin:

  1. Criar diretório:

    mkdir c: \ mongo \ data \ db

  2. Instalar serviço:

    mongod.exe - instalar --logpath c: \ mongo \ logs --logappend --bind_ip 127.0.0.1 --dbpath c: \ mongo \ data \ db --directoryperdb

  3. Inicie o MongoDB:

    início líquido MongoDB

4.Inicie o Mongo Shell:

c:\mongo\bin\mongo.exe

Esta solução funciona bem para mim

Luke Le
fonte
3

Isso funcionou para mim:

sudo rm /var/lib/mongodb/mongod.lock    
sudo service mongodb restart
yogesh singh
fonte
3

Para referência futura, siga estas etapas para evitar erros semelhantes:

1.Download MondoDB https://www.mongodb.com/

2. Abra um terminal e um CD na sua pasta de downloads ou em qualquer pasta que você salvou no download do mondodb (certifique-se de extrair sua pasta do mongodb antes de fazer o cd nela)

cd Downloads

3.Mover o mongodb para o seu caminho usr / local

sudo mv mongodb-osx-... /usr/local/mongodb

4.cd na sua pasta local

cd /usr/local/mongodb

5. criar um novo diretório

sudo mkdir -p /data/db

6.cd no novo diretório criado acima

cd /data/db

7. dar permissões de mongo

sudo chown YourMacUserName /data/db

8.Em seguida, vá / abra seu .bash_profile

Para fazer isso, execute as seguintes etapas:

No seu novo terminal

1 . cd 2 .pwd 3 .ls -l

Verifique se o .bash_profile aparece na sua lista de arquivos no seu terminal

caso contrário, crie o -bash_profile

Criando .bash_profile:

No seu terminal

toque em .bash_profile

// pule esta etapa se você já tiver um .bash_profile

Etapa 8:

Em seguida no seu terminal:

open .bash_profile

E no seu arquivo bash que é aberto, adicione o seguinte:

MONGO_PATH=/usr/local/mongodb
export PATH=$PATH:$MONGO_PATH/bin

E salve . (Salvar arquivo ou comando S / CMD + S)

Etapa 9: de volta ao seu terminal :

source .bash_profile

Agora abra dois terminais . Um será para o seu mondo daemon e outro para o seu mongo .

Terminal 1: no seu terminal, digite: mongod

mongodb

Resultado: Mongod Terminal

Terminal 2:

mongo

Resultado: Terminal Mongo

Certifique-se também de não cometer o seguinte erro de digitação ao iniciar o mongod no seu terminal: Isso está incorreto

mongo d

emite o seguinte erro : Falha ao conectar-se a 127.0.0.1:27017, no (soquete para verificação de erro após pesquisa), motivo: Conexão recusada

Isto está certo:

mongod

(Não deve haver espaço entre as palavras mongo e d .. mondod

Por fim, lembre-se sempre de que você deve executar o mondod antes de executar o mongo em seus terminais .

RileyManda
fonte
2

Eu segui o documento em http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/ .

Depois de configurado e reiniciar, executei sudo service mongod starte obtive ... [FAILED].

Por fim, descobri que mongodtinha começado. Eu acho que o yum installadicionou ao início automático.

Para verificar se o seu mongodestá em execução: service mongod status.

Espero que isso ajude alguém a ter o mesmo problema.

yangsibai
fonte
2

Após tentativas frequentes, finalmente consegui solucionar o problema ...

Step 1: ps aux | grep mongo
Step 2: sudo rm /var/lib/mongodb/mongod.lock
Step 3: sudo mongod --repair
Step 4: mongo
Narendran
fonte
2

Este erro pode ser causado pela configuração de IP de ligação do MongoDB. Você pode verificar o arquivo de configuração do MongoDB

$ sudo vi /etc/mongodb.conf

No meu caso, o IP de ligação é definido como o endereço da intranet do servidor, da seguinte maneira:

bind_ip = 10.10.1.14 
#port = 27017

Então, eu dei ao mongo um parâmetro IP para conectar ao shell pelo tipo:

$ mongo 10.10.1.14

Não se esqueça de reiniciar o serviço mongodb se você alterou a configuração.

Haoming Zhang
fonte
2

Eu tenho o mongo versão 3.2.1 e tive que excluir o arquivo de bloqueio /data/db/e, depois disso, executei mongode ele foi iniciado com êxito.

>rm /data/db/mongod.lock
>mongod
thehme
fonte
2

No terminal, execute esses comandos

1)

$ sudo service mongod start

2)

 $ mongo
shijinmon Pallikal
fonte
1

Depois de remover o mongod.lock, que estava dentro do diretório de dados no sistema operacional Windows, ele ainda estava mostrando a mesma mensagem de erro. Eu tive que executar o mongod com --dbpath para fazer com que o comando mongo fosse executado sem erros.

kta
fonte
1

Embora as respostas sejam recebidas, eu gostaria de discutir sobre erros de rede no Windows MongoDB.

Erros de rede MongoDB

Definir as preocupações de gravação segura não é o método de prova completa para garantir que estamos seguros. Vamos supor que w=1& j=trueesteja definido, e se a confirmação de gravação não tiver recebido do servidor? Bem, é provável que não tenha acontecido, mas pode ter acontecido. A razão pela qual isso pode ter acontecido é que há erros de rede - há motivos para não recebermos uma resposta afirmativa. Assim, podemos enviar a solicitação do aplicativo através de um driver do idioma de sua escolha.mongodpode concluí-lo com êxito e, em seguida, pode haver uma redefinição do TCP, e a rede pode realmente ser redefinida de uma maneira que nunca recebamos resposta. Portanto, podemos obter um erro e, no erro, podemos assumir que temos um erro. Não aconteceu, mas pode acontecer.

Para uma inserção, é possível se proteger dela. É possível porque se deixarmos o driver criar a _idinserção e fizermos uma inserção - poderíamos fazer essa inserção várias vezes e isso causaria algum dano. Porque, se não fizermos este 1 st tempo e teremos um erro e não temos certeza se quer ou não que a inserção concluída porque é um erro de rede, então nós poderíamos apenas fazê-lo novamente. E desde que a realizemos novamente, tente realizá-la exatamente_id . O pior cenário é que obteremos um erro de chave duplicada quando tentarmos inseri-lo.

No entanto, uma atualização é onde o problema ocorre. Especialmente, a atualização que não é item potente, que por exemplo incluía um$ink comando. Então, estamos dizendo ao banco de dados para incrementar um determinado campo. Bem, nesse caso, se recebermos um erro de rede e não soubermos se a atualização ocorreu ou não. Agora, talvez conheçamos o suficiente sobre os valores que podemos verificar com eles que a atualização ocorreu, o que é bom. Mas se não soubermos o valor inicial no banco de dados para esse campo, não será possível saber se ocorreu ou não em caso de erro na rede. Esse tipo de problema é extremamente raro com uma boa rede.

E se realmente precisamos evitá-lo a todo custo, o que precisamos fazer é ativar todas as nossas atualizações em inserções, lendo o valor total do documento fora do banco de dados e, potencialmente, excluindo-o e inserindo-o novamente ou apenas inserindo um novo.

Os motivos pelos quais um aplicativo pode receber um erro mesmo se a gravação tiver sido bem-sucedida:

  • A conexão TCP da rede entre o aplicativo e o servidor foi redefinida após o servidor receber uma gravação, mas antes que uma resposta pudesse ser enviada.
  • O MongoDBservidor termina entre receber a gravação e responder a ela.
  • A rede falha entre a hora da gravação e a hora em que o cliente recebe uma resposta para a gravação.
Zameer
fonte
1

Isso funciona para mim Para interromper o uso do mongodb:

use admin
db.shutdownServer()

E para reiniciar:

sudo service mongod restart
Varsh
fonte
0

A adição da lixeira ao PATH nas variáveis ​​de ambiente ajudou.

Caminho de instalação do GOTO e copie o ../bin para as variáveis ​​PATH nas variáveis ​​de ambiente no Windows

Sumukh Bhandarkar
fonte
0

digite windows + re digite o seguinte

services.msc

inicie o MongoDB

agora digite "mongo" no cmd no respectivo caminho em que o mongo.exe está presente, ele começará a funcionar.

Gireesh k
fonte
0

1.Crie uma nova pasta na unidade d D: / data / db

2. Abra o terminal em D: / data / db

3. Digite mongod e insira.

4. Digite mongo e digite.

e o seu mongodb está programado ............

Pushpender Singh
fonte
0

simples Run Two recomenda

sudo rm /var/lib/mongodb/mongod.lock
sudo mongod --repair 
Shashwat Gupta
fonte
0

Eu recebi um erro semelhante, mas a causa raiz foi diferente. Depois de instalar o mongodb usando o homebrew. https://docs.mongodb.com/manual/installation/ Preciso iniciar o serviço "mongod" antes de executar o comando "mongo" no terminal.

Shyambeer
fonte
0

Se você estiver usando sistemas OS X, não há servicecomandos. Então você não será capaz de executar sudo service mongod start.

Verifique esta resposta https://unix.stackexchange.com/a/155746 para obter mais ajuda!

Laura Corssac
fonte
0

Erro: Não foi possível conectar ao servidor 127.0.0.1:27017

Esta é a solução para os usuários do WINDOWS digitar o código aqui 1. Crie o diretório:

mkdir c:\mongo\data\db
  1. Serviço de instalação: primeiro, vá para o diretório bin em arquivos de programas do MongoDB com cd

mongod.exe --install --logpath

  1. Inicie o MongoDB:

    net start MongoDB

4.Inicie o Mongo Shell:

`c:\mongo\bin\mongo.exe` or

vá até a lixeira e entre mongo

Nota: Abra o terminal no modo Administrador

Mohit Rakhade
fonte
0

Ubuntu 18.04LTS: O problema surge quando eu desinstalei minha versão anterior completamente e instalei o 4.2.6

Depois de horas pesquisando no google, resolvi outro problema

Falha ao iniciar o MongoDB - *** anulando após falha de fassert ()

Eu estava sem esperança sobre o problema não conseguir conectar ao servidor , porque tudo parece ok.

Finalmente, decidi reiniciar o sistema operacional e adivinhem ... BINGO

sudo mongo // works like a charm
senhor
fonte
0

Apenas tente:

sudo service mongod restart 
TBhavnani
fonte