Não é possível conectar ao mongodb errno: 61 Conexão recusada

91

Recentemente instalei o mongodb-2.6.0 com o Homebrew . Depois de instalado com sucesso, tentei conectar usando o mongocomando. Estou recebendo os seguintes erros que não me permitem conectar:

Failed to connect to 127.0.0.1:27017, reason: errno:61 Connection refused

Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed at src/mongo/shell/mongo.js:146

exception: connect failed
Michael
fonte
1
Tem certeza de que o serviço mongod está funcionando? Quais opções de configuração você tem em seu arquivo conf?
ffflabs
Você usou sudo apt-get para instalar? Já li sobre pessoas que estão enfrentando problemas com isso ... tente remover e fazer download através do site MongoDB .
Hassan
Eu instalei com o homebrew, as instruções no site oficial não afirmavam que eu preciso configurar um arquivo .config. Simplesmente baixei e executei o comando 'mongoose' que resultou nos erros acima.
Michael
Verifique seus logs, geralmente em /var/logs/mongodbse bem me lembro.
AlbertEngelB
Eu reinstalei por meio do download e descompactei o arquivo. Estou executando o 'mongo' e continuo recebendo os mesmos erros.
Michael

Respostas:

277

Isso pode acontecer quando o serviço mongodb não está sendo executado no mac. Para começar, tentei

brew services start mongodb

e funcionou.

Edit: De acordo com a discussão sobre este PR no homebrew: https://github.com/Homebrew/homebrew/issues/30628

brew servicesestá obsoleto, procurei no SO e encontrei essas respostas que respondem à pergunta: Qual é a maneira correta de iniciar um serviço mongod no linux / OS X?

Hrishi
fonte
8
Estou recebendo um erro com este comando: "Comando desconhecido: serviços"
ZeMoon
7
'brew services' não é mais compatível: github.com/Homebrew/homebrew/issues/32006
Vitaly
7
Tentei sudo mongod em vez de mongo e começou! Para acessar o shell do mongo, abri uma nova janela do shell e escrevi mongo e funcionou !! Você pode encontrar rastreamento de erro completo com solução neste blog
Ali Raza Bhayani
1
Os serviços de cerveja não são mais suportados no meu Mac OS X Yosemite. sudo mongodiniciou o mongodb e o comando mongo funcionou. Obrigado @Ali Raza Bhayani.
psun
2
Obrigado por esta solução !! O comando brew service funcionou para mim no meu Mac OS X Sierra.
Jcc.Sanabria
32

Eu encontrei exatamente o mesmo problema e aqui está um processo claro passo a passo para evitar esse erro.

Etapa 1 - Instalação (não siga esta etapa se você já instalou o MongoDB):

brew update
brew install mongodb

Etapa 2 - Execute o Mongo Daemon:

mkdir -p /data/db
sudo mongod

Etapa 3 - Execute a interface Mongo Shell:

mongo

Nesta sequência, consegui executar o mongocomando sem nenhum erro. Também detalhei o rastreamento de erro e sua solução neste blog .

Ali Raza Bhayani
fonte
1
Isso também é referenciado na página oficial do MongoDB: docs.mongodb.org/v2.2/tutorial/install-mongodb-on-os-x/…
Paulo Oliveira
isso funcionou para mim uma vez ... mas então caiu: / Isso parece ter funcionado: stackoverflow.com/a/22623543/1177832
danwild
Essa é uma boa maneira de vencer a batalha e perder a guerra. Não execute serviços como root.
Miles Erickson
22

Para resolver o seu problema, você precisa seguir as instruções fornecidas pela brew depois de usar "brew install mongodb".

Para iniciar o mongodb no login:

ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents

Então, para carregar o mongodb agora:

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist

Ou, se não quiser / precisar do launchctl, você pode apenas executar:

mongod --config /usr/local/etc/mongod.conf

Você pode conseguir apenas executar o último comando, mas não funcionou para mim e eu precisava executar o segundo comando. Para me salvar no futuro. Acabei de executar o primeiro comando também. Espero que ajude!

EDITAR O método de uso de Hrishi brew services mongodb startfuncionou bem para mim. Acho que eles deveriam incluir isso nos documentos do mongo.

jh3y
fonte
Usei o último comando e visitei localhost / 27017 em meu navegador, a tela disse, 'Parece que você está tentando acessar MongoDB sobre HTTP na porta do driver nativo.' Isso não parece estar correto ...
Michael
Mongo agora está rodando certo? Como em, você pode digitar mongo no shell e não está mais recebendo a mensagem de conexão recusada? Você não acessará o mongo a partir do navegador, mas sim trabalhará com ele no cli.
jh3y
Não, nenhum comando no shell será executado depois que eu inserir 'mongod --config /usr/local/etc/mongod.conf' É simples um prompt em branco. Eu instalei novamente sem usar o homebrew e baixei o zip do site, movi os executáveis ​​para / usr / local / bin, mas agora continuo recebendo as mesmas mensagens de erro.
Michael
sim, o último comando desligou para mim também. Eu apenas executaria os dois primeiros e você deve ser bom. Quando ele travar, basta clicar ctrl + ce tentar mongodepois disso.
jh3y
Hmm ... Ainda não está funcionando. Vou postar nos fóruns do mongoDB. Obrigado pela ajuda.
Michael
16

Em outra guia, você pode iniciar o shell mongo com

Mongod

Em seguida, volte para a guia anterior e tente novamente. Se você estiver tendo problemas para configurar seu mongoshell, verifique este link no shell do mongo: http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/ ou este link sobre a instalação do mongodb: http: / /docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/

Eric Hou
fonte
Isso fez isso por mim. Eu esqueci totalmente de iniciar o serviço mongod antes de tentar executar o mongo. Obrigado!
Matt Welander
7

Eu estava tendo o mesmo problema ao ligar mongodda linha de comando.

Resolvi isso ligando sudo mongod.

Bogdan T.
fonte
Não execute serviços como root.
Miles Erickson
4

Eu tive o mesmo erro, mas uma causa raiz diferente. Pensei em postar a solução aqui caso mais alguém tenha o problema. Recebi este erro depois que meu Mac desligou incorretamente enquanto eu estava em execução mongorestore -d foo dump/foo/.

tl; dr : Eu corrigiu o problema removendo o danificado foo.nsarquivo junto com foo.0, foo.1... da minha pasta de dados /usr/local/var/mongodb/. Então reiniciei o servidor mongo com brew services restart mongodbe voltei ao normal.

Detalhes : Eu continuei recebendo o erro mesmo depois de tentar iniciar ou reiniciar o serviço mongodb via brew ou launchctl. Por fim, corri mongod --dbpath /usr/local/var/mongodb e vi que o serviço não estava realmente iniciando, e a sequência de início incluía o seguinte erro: [initandlisten] bad .ns file: /usr/local/var/mongodb/foo.ns [initandlisten] User Assertion: 10079:bad .ns file length, cannot open database Eu me livrei do .nsarquivo defeituoso e do restante dos arquivos de dados e, da próxima vez que iniciei o serviço, estava pronto para começar .

Nick Benes
fonte
1
Meu único arrependimento é que só tenho um voto positivo a dar: todas as outras respostas ignoram o fato de que as configurações padrão do brew colocam dbs em / usr / local / var / mongodb!
premiumFrye
1
Annnddd Mongo travou novamente, então agora eu tinha que passar por esse processo novamente. Ainda bem que votei positivamente em sua resposta para poder encontrá-la novamente: D
premiumFrye
3

para mim no osx, tive que matar a instância antiga em execução e reiniciar funcionou.

$>ps -aef | grep mongo
502  8047     1   0 11:52AM ??         0:00.23 /usr/local/opt/mongodb/bin/mongod --config /usr/local/etc/mongod.conf 

$>sudo kill 8047

$>sudo mongod
Ranjeetcao
fonte
1

Recebi este erro depois de atualizar para o mongo 3.6 com homebrew.

O log /usr/local/var/log/mongodb/mongo.logcontinha a mensagem shutting down with code:62. Este código de erro significa que o banco de dados existente é muito antigo para ser executado com a versão atual do mongo.

Encontrei 2 soluções em outra questão do SO :

Eu escolhi fazer o upgrade. No meu caso, isso significava que eu tinha que fazer o downgrade para o 3.4, executar um comando no console do mongo e fazer o upgrade novamente. O Mongo requer que você atualize uma versão principal de cada vez, portanto, dependendo de quanto tempo você estava, pode haver etapas adicionais. Os documentos irão guiá-lo.

Os comandos brew switch* e brew services restarttornam a troca entre as versões relativamente indolor.

Chad von Nau
fonte
0

Se você já instalou o MongoDB, tente primeiro executar o mongod como um usuário sudo. Eu estava enfrentando o problema por não executar o mongod como um superusuário.

Eu colei o o / p para os comandos ( mongod e sudo mongod ) na parte inferior, você pode verificar isso também, mas

Primeiro tente isso

sudo mongod

isso não

mongod

Eu tinha instalado o MongoDB no meu MAC OS X Sierra 10.12.6 executando o seguinte comando em sequência.

brew update
brew install mongodb --devel
brew services start mongodb

em seguida, criou um diretório no qual o processo mongod gravará os dados, isso é opcional, pois o processo mongod os leva por padrão, consulte este guia útil em https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os -x /

sudo mkdir -p /data/db

Finalmente comecei o processo mongod da seguinte forma

sudo mongod

Oputput dos comandos mongod (falha) e sudo mongod (sucesso) no meu terminal.

MacBook-Pro-2:appscheck admin$ mongod
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] MongoDB starting : pid=2698 port=27017 dbpath=/data/db 64-bit host=MacBook-Pro-2.local
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] db version v3.4.10
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] git version: 078f28920cb24de0dd479b5ea6c66c644f6326e9
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2n  7 Dec 2017
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] allocator: system
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] modules: none
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] build environment:
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten]     distarch: x86_64
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten]     target_arch: x86_64
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] options: {}
2017-12-10T08:12:06.166+0530 I STORAGE  [initandlisten] exception in initAndListen: 20 Attempted to create a lock file on a read-only directory: /data/db, terminating
2017-12-10T08:12:06.166+0530 I NETWORK  [initandlisten] shutdown: going to close listening sockets...
2017-12-10T08:12:06.166+0530 I NETWORK  [initandlisten] shutdown: going to flush diaglog...
2017-12-10T08:12:06.167+0530 I CONTROL  [initandlisten] now exiting
2017-12-10T08:12:06.167+0530 I CONTROL  [initandlisten] shutting down with code:100


MacBook-Pro-2:appscheck admin$ sudo mongod
Password:
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] MongoDB starting : pid=2700 port=27017 dbpath=/data/db 64-bit host=MacBook-Pro-2.local
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] db version v3.4.10
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] git version: 078f28920cb24de0dd479b5ea6c66c644f6326e9
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2n  7 Dec 2017
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] allocator: system
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] modules: none
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] build environment:
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten]     distarch: x86_64
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten]     target_arch: x86_64
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] options: {}
2017-12-10T08:12:14.084+0530 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=7680M,session_max=20000,eviction=(threads_min=4,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-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
2017-12-10T08:12:14.560+0530 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
2017-12-10T08:12:14.707+0530 I INDEX    [initandlisten] build index on: admin.system.version properties: { v: 2, key: { version: 1 }, name: "incompatible_with_version_32", ns: "admin.system.version" }
2017-12-10T08:12:14.707+0530 I INDEX    [initandlisten]      building index using bulk method; build may temporarily use up to 500 megabytes of RAM
2017-12-10T08:12:14.719+0530 I INDEX    [initandlisten] build index done.  scanned 0 total records. 0 secs
2017-12-10T08:12:14.720+0530 I COMMAND  [initandlisten] setting featureCompatibilityVersion to 3.4
2017-12-10T08:12:14.720+0530 I NETWORK  [thread1] waiting for connections on port 27017

Então abri um novo terminal para começar a consultar o MongoDB , funcionou.

MacBook-Pro-2:appscheck admin$ mongo
MongoDB shell version v3.4.10
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.10
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
    http://docs.mongodb.org/
Questions? Try the support group
    http://groups.google.com/group/mongodb-user
Server has startup warnings: 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
> show dbs;
admin  0.000GB
local  0.000GB
> use practice
switched to db practice
>

É isso aí.

higiênico
fonte
0

Eu tive o mesmo problema e ao olhar o arquivo de log, vi o seguinte:

{2019-03-09T11:57:32.136-0500 I STORAGE  [initandlisten] 
exception in initAndListen: NonExistentPath: 
Data directory /usr/local/var/mongodb not found., terminating}

então criei o diretório /usr/local/var/mongodb emitido o comando brew services restart mongodb. Consegui abrir o console do mongo.

Jonathan.Wagner
fonte
-1

Meu palpite é que você não tem um banco de dados em execução ao tentar acessar o teste por meio do comando "mongo".

Primeiro execute este comando no terminal:

mongod 

Em seguida, abra outra janela de terminal e execute:

Mongo

Tudo deve estar funcionando agora.

Ctpelnar1988
fonte
-1

Meu erro semelhante é resolvido excluindo o arquivo "sudo rm /data/db/mongod.lock" ao tentar executar o mongod. Agora você pode executar o mongod e depois o mongo.

Rishabh Mehta
fonte