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

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?


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 .


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.


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/


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.


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 .


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

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.



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í.


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.


-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.


-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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.