Impossibile connettersi a mongodb errno: 61 Connessione rifiutata


91

Recentemente ho installato mongodb-2.6.0 con Homebrew . Dopo l'installazione con successo, ho provato a connettermi utilizzando il mongocomando. Ricevo i seguenti errori che non mi consentono di connettermi:

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
Sei sicuro che il servizio mongod sia in esecuzione? Quali opzioni di configurazione hai sul tuo file di configurazione?
ffflabs

Hai usato sudo apt-get per l'installazione? Ho letto di persone che hanno riscontrato problemi con questo ... prova invece a rimuovere e scaricare tramite il sito MongoDB .
Hassan

Ho installato con homebrew, le indicazioni sul sito ufficiale non indicavano che dovevo configurare un file .config. L'ho semplicemente scaricato ed eseguito il comando "mongoose" che ha provocato gli errori di cui sopra.
Michael

Controlla i tuoi log, generalmente /var/logs/mongodbse ricordo bene.
AlbertEngelB

Ho reinstallato tramite il download e ho decompresso il file. Sto eseguendo "mongo" e continuo a ricevere gli stessi errori.
Michael

Risposte:


277

Può accadere quando il servizio mongodb non è in esecuzione sul mac. Per avviarlo, ho provato

brew services start mongodb

e ha funzionato.

Modifica: secondo la discussione su questo PR su homebrew: https://github.com/Homebrew/homebrew/issues/30628

brew servicesè deprecato, mi sono guardato intorno su SO e ho trovato queste risposte ora rispondono alla domanda: qual è il modo corretto per avviare un servizio mongod su linux / OS X?


8
Ricevo un errore con questo comando: "Comando sconosciuto: servizi"
ZeMoon

7
I 'servizi di birra' non sono più supportati: github.com/Homebrew/homebrew/issues/32006
Vitaly

7
Ho provato sudo mongod invece di mongo ed è iniziato! Per accedere a mongo shell, ho aperto una nuova finestra di shell e ho scritto mongo e ha funzionato !! Puoi trovare la traccia completa degli errori con la soluzione su questo blog
Ali Raza Bhayani,

1
I servizi di infusione non sono più supportati nel mio Mac OS X Yosemite. sudo mongodha avviato il mongodb e poi il comando mongo ha funzionato. Grazie @Ali Raza Bhayani.
psun

2
Grazie per questa soluzione !! Il comando del servizio di infusione ha funzionato per me nel mio Mac OS X Sierra.
Jcc.Sanabria

32

Ho riscontrato lo stesso identico problema ed ecco una chiara procedura passo passo per evitare questo errore.

Passaggio 1 - Installazione (non seguire questo passaggio se hai già installato MongoDB):

brew update
brew install mongodb

Passaggio 2 - Esegui Mongo Daemon:

mkdir -p /data/db
sudo mongod

Passaggio 3 : eseguire l'interfaccia Mongo Shell:

mongo

In questa sequenza, sono stato in grado di eseguire il mongocomando senza alcun errore. Ho anche dettagliato la traccia degli errori e la sua soluzione su questo blog .


1
Si fa riferimento anche alla pagina ufficiale di MongoDB: docs.mongodb.org/v2.2/tutorial/install-mongodb-on-os-x/…
Paulo Oliveira

questo ha lavorato per me una volta ... ma poi è caduto sopra: / Questo sembra aver fatto il trucco: stackoverflow.com/a/22623543/1177832
danwild

Questo è un buon modo per vincere la battaglia e perdere la guerra. Non eseguire i servizi come root.
Miles Erickson

22

Per risolvere il problema, è necessario seguire le istruzioni che vengono fornite da brew dopo aver utilizzato "brew install mongodb".

Per fare in modo che launchd avvii mongodb all'accesso:

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

Quindi per caricare mongodb ora:

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

Oppure, se non vuoi / hai bisogno di launchctl, puoi semplicemente eseguire:

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

Potresti essere in grado di eseguire solo l'ultimo comando, ma non ha funzionato per me e avevo bisogno di eseguire il secondo comando. Per salvarmi in futuro. Ho appena eseguito anche il primo comando. Spero che aiuti!

MODIFICA Il metodo di utilizzo di Hrishi ha brew services mongodb startfunzionato bene per me. Penso che dovrebbero includerlo nei documenti di mongo.


Ho usato l'ultimo comando e ho visitato localhost / 27017 nel mio browser, lo schermo diceva: "Sembra che tu stia tentando di accedere a MongoDB tramite HTTP sulla porta del driver nativo". Non sembra essere corretto ...
Michael

Mongo ora è in esecuzione, giusto? Come in puoi digitare mongo in shell e non ricevi più il messaggio di connessione rifiutata? Non accederai a mongo dal browser, ti consigliamo di lavorarci dalla cli.
jh3y

No, nessun comando nella shell verrà eseguito dopo aver digitato "mongod --config /usr/local/etc/mongod.conf" È semplice un prompt vuoto. Ho reinstallato senza utilizzare homebrew e scaricato lo zip dal sito Web, spostato gli eseguibili in / usr / local / bin, ma ora ricevo ancora gli stessi messaggi di errore.
Michael

sì, l'ultimo comando è appeso anche a me. Vorrei solo eseguire i primi due e dovresti essere bravo. Quando si blocca, colpisci ctrl + ce prova mongodopo.
jh3y

Hmm ... Non funziona ancora. Pubblicherò sui forum mongoDB. Grazie per l'aiuto.
Michael

16

In un'altra scheda, puoi avviare la mongo shell con

mongod

Quindi torna alla scheda precedente e riprova. Se hai problemi a configurare il tuo mongoshell, controlla questo link sulla shell di mongo: http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/ o questo link sull'installazione di mongodb: http: / /docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/


Questo ha fatto per me. Ho completamente trascurato di avviare il servizio mongod prima di provare a eseguire mongo. Grazie!
Matt Welander

7

Ho riscontrato lo stesso problema durante la chiamata mongoddalla riga di comando.

L'ho risolto chiamando invece sudo mongod.


Non eseguire i servizi come root.
Miles Erickson

4

Ho riscontrato lo stesso errore ma una causa principale diversa. Ho pensato di pubblicare la soluzione qui nel caso in cui qualcun altro si imbattesse nel problema. Ho ricevuto questo errore dopo che il mio Mac si è spento in modo improprio mentre stavo correndo mongorestore -d foo dump/foo/.

tl; dr : ho risolto il problema rimuovendo il danneggiato foo.nsfile di insieme foo.0, foo.1... dalla mia cartella dei dati /usr/local/var/mongodb/. Quindi ho riavviato il server mongo con brew services restart mongodbe sono tornato alla normalità.

Dettagli : ho continuato a ricevere l'errore anche dopo aver provato ad avviare o riavviare il servizio mongodb tramite brew o launchctl. Alla fine sono corso mongod --dbpath /usr/local/var/mongodb e ho visto che il servizio non si stava effettivamente avviando e la sequenza di avvio includeva il seguente errore: [initandlisten] bad .ns file: /usr/local/var/mongodb/foo.ns [initandlisten] User Assertion: 10079:bad .ns file length, cannot open database mi sono sbarazzato del .nsfile danneggiato e del resto dei file di dati, e la volta successiva che ho avviato il servizio ero a posto .


1
Il mio unico rimpianto è che ho solo un voto positivo da dare: tutte le altre risposte ignorano il fatto che le configurazioni di brew predefinite mettono dbs in / usr / local / var / mongodb!
premiumFrye

1
Annnddd Mongo si è bloccato di nuovo, quindi ora ho dovuto ripetere questo processo. Meno male che ho votato positivamente la tua risposta in modo da poterla ritrovare: D
premiumFrye

3

per me su osx, ho dovuto uccidere la vecchia istanza in esecuzione, quindi il riavvio ha funzionato.

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

Ho ricevuto questo errore dopo aver aggiornato a mongo 3.6 con homebrew.

Il registro /usr/local/var/log/mongodb/mongo.logconteneva il messaggioshutting down with code:62 . Questo codice di errore indica che il database esistente è troppo vecchio per essere eseguito con la versione corrente di mongo.

Ho trovato 2 soluzioni in un'altra domanda SO :

Ho scelto di aggiornare. Nel mio caso, ciò significava che dovevo eseguire il downgrade a 3.4, eseguire un comando nella console mongo, quindi aggiornare di nuovo. Mongo richiede di aggiornare una versione principale alla volta, quindi a seconda di quanto eri indietro, potrebbero esserci passaggi aggiuntivi. I documenti ti guideranno.

I comandi brew switch* e brew services restartrendevano lo scambio tra le versioni relativamente indolore.


0

Se hai già installato MongoDB, prova prima a eseguire mongod come utente sudo, stavo affrontando il problema perché non eseguivo mongod come superutente.

Ho incollato l'o / p per entrambi i comandi ( mongod e sudo mongod ) in fondo, puoi controllare anche quello ma

Prima prova questo

sudo mongod

non questo

mongod

Avevo installato MongoDB sul mio MAC OS X Sierra 10.12.6 eseguendo il seguente comando in sequenza.

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

quindi creato una directory in cui il processo mongod scriverà i dati, questo è opzionale poiché il processo mongod lo prende per impostazione predefinita, vedere questa guida utile su https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os -X/

sudo mkdir -p /data/db

Finalmente iniziato il processo mongod come segue

sudo mongod

Oputput dei comandi mongod (non riuscito) e sudo mongod (riuscito) sul mio terminale.

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

Quindi ho aperto un nuovo terminale per iniziare a interrogare MongoDB , ha funzionato.

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
>

Questo è tutto.


0

Ho avuto lo stesso problema e guardando nel file di registro ho visto questo:

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

quindi ho creato la directory /usr/local/var/mongodb emesso il comando brew services restart mongodb sono riuscito ad aprire la console mongo.


-1

La mia ipotesi è che tu non abbia un database in esecuzione mentre cerchi di accedere a testing tramite il comando "mongo".

Per prima cosa esegui questo comando nel terminale:

mongod 

Quindi apri un'altra finestra di terminale ed esegui:

mongo

Adesso dovrebbe funzionare tutto.


-1

Il mio errore simile viene risolto eliminando il file "sudo rm /data/db/mongod.lock" durante il tentativo di eseguire mongod. Ora puoi eseguire mongod e poi mongo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.