mongo - impossibile connettersi al server 127.0.0.1:27017


164

Vengo da riak e redis, dove non ho mai avuto problemi con l'avvio di questi servizi o per interagire.

Questo è un problema pervasivo con mongo e sono piuttosto all'oscuro. Il riavvio non aiuta. Sono nuovo di 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

Questo è ciò che vedo nei registri.

 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

2
Dato che l'IMO non ha nulla a che fare con la programmazione in sé, ti consiglio di porre questa domanda su serverfault.com .
cimnine,

2
Stavo anche affrontando lo stesso problema. Its cus mongo Impossibile creare la cartella in C: / data / db Ho seguito questo tutorial mkyong.com/mongodb/how-to-install-mongodb-on-windows
STEEL

Ho riscontrato lo stesso errore durante l'utilizzo del laptop della mia azienda e l'installazione di MongoDB su C :. A causa dei privilegi di amministratore e del fatto che mi viene richiesto il nome utente e la password di amministratore ogni volta che installo qualcosa o modifico qualcosa in C :, questa è la ragione per cui non riesco a far funzionare mongodb. Dopo averlo installato su D :, tutto ha funzionato bene.
paranza,

Risposte:


47

Questo errore è quello che vedresti se la shell mongo non fosse in grado di parlare con il server mongod.

Ciò potrebbe essere dovuto al fatto che l'indirizzo era errato (host o IP) o che non era in esecuzione. Una cosa da notare è che la traccia del registro fornita non copre il "Venerdì 9 novembre 16:44:06" del tuo mongo timestamp.

Puoi:

  1. Fornire gli argomenti della riga di comando (se presenti) utilizzati per avviare il processo mongod
  2. Fornire l'attività del file di registro dall'avvio di mongod nonché i registri durante il tentativo di avvio della shell mongo?
  3. Conferma che il tuo processo mongod è stato avviato sulla stessa macchina della shell mongo?

283

Normalmente ciò è causato dal fatto che non hai avviato il processo mongod prima di provare ad avviare la shell mongo.

Avviare il server mongod

mongod

Apri un'altra finestra del terminale

Inizia mongo shell

mongo

3
Questo caso ha funzionato per me, ho dovuto fare ~> sudo mongod --dbpath / dbpathlocation e poi ho aperto il nuovo terminale per eseguire mongo ...
Saji

5
quello che ha funzionato per me su macOS Sierra è stato sudo mongode poimongo
Amin Jafari il

Ho dovuto creare una directory / data / db prima di eseguire mongod
College Student il

Non riesco a credere che tutto quello che dovevo fare fosse correre mongodin background o in un'altra shell prima di correre mongo. Grida a Ravi Hamsa !
Kareem Jeiroudi,

Ha funzionato per me come il fascino!
Sobhit Sharma,

86

Risolto.

Questo problema potrebbe essere risolto con i 4 passaggi indicati di seguito

1) Rimuovere il file .lock

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

2) riparare il mongodb

mongod -–repair

3) avviare il server mongod

sudo service mongod start 

4) avviare il client mongo

mongo

Per maggiori dettagli dai un'occhiata a 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/


4
Mi chiedo solo, che cos'è /var/lib/mongodb/mongod.lock e cosa è andato storto?
Oz,

L'elemento 2 in Ubuntu 18.04 èmongod --repair
Aline Matos,

43

Questo metodo funziona solo se si desidera ripristinare i file di dati senza conservare i file originali

Per trovare dove risiede dbpath- vim /etc/mongodb.conf

controlla l'opzione dbpath =

(Ho dbpath = / var / lib / mongodb)

Predefinito: / data / db /

Le posizioni tipiche includono: / srv / mongodb, / var / lib / mongodb o / opt / mongodb.

Sostituisci / var / lib / mongodb con il tuo dbpath

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

(Assicurati di lasciare il terminale in esecuzione in cui hai corso sopra le linee, non premere 'Ctrl + c' o uscire.) Digita il comando per avviare mongo ora in un'altra finestra.

Spero che questo funzioni per te! per coloro che vogliono riparare i file di dati preservando i file originali mongo recuperare


1
lavorare su Ubuntu. --journal ha risolto il mio problema. Cosa fa davvero? a cosa serve --journal?
grep,

Ha funzionato per me su fedora 20. Ora possiamo chiudere la prima finestra del terminale?
Khayam Gondal l'

27

MAC OS

Controllare lo stato

brew services list

Qualcosa di simile a:

Name    Status  User Plist
mongodb stopped  

avviarlo

brew services start mongodb

Ritenta

mongo o mongo --port 27017


1
Questo mi ha aiutato a +1.
Sandeep,

Non ha funzionato per me. Faccio fatica a gestire questo MongoDB ormai da un'ora. Wow!!!
Glenn

questo mi ha aiutato, grazie ..
Iam ByeBlogs

15

Nel mio caso:

Per prima cosa apro il file di configurazione

sudo vi /etc/mongodb.conf

Commenta IP e Port in questo modo

#bind_ip = 127.0.0.1
#port = 27017

Quindi riavviare mongodb

sudo service mongodb restart
sudo service mongod restart

Infine, funziona: D

finn@Finn ~ $ mongo
MongoDB shell version: 2.4.9
connecting to: test
> exit

La rimozione dell'ip / porta non ha funzionato per me. In realtà ha rotto ancora di più il server. Il servizio ha rifiutato di ricominciare da capo ...
Cerin,

1
Fai attenzione con bind_ip. Se lo commenterai, consentirà connessioni remote al tuo database che è ovviamente un'idea terribile a meno che tu non abbia la sicurezza e la configurazione dell'autorizzazione. Credo che MongoDB non abbia utenti o password per impostazione predefinita, quindi è necessario esserne consapevoli.
agm1984,

Lavora anche per me, ma non so della sicurezza dopo il commento di @ agm1984, lo userò solo in modalità di sviluppo e dopo userò Atlas Cloud di Mongodb, più sicuro nel mio caso penso (con il mio povero server competenze: D)
Adrien V

1
@AdrienV certo, è pericoloso rimuovere il binding IP locale perché consentirà l'accesso da Internet. Questa è solo una soluzione per il server di sviluppo.
Finn,

bind_ip è stato impostato su un IP sconosciuto aggiuntivo. L'eliminazione ha risolto l'errore / db / data ... ufff
zevero

14

Assicurati che il tuo mongo sia in esecuzione. Ho risolto questo problema provando a riparare il mongodb, lì ho scoperto che la directory richiesta per l'esecuzione del db non era stata creata. Mostra questo errore

Digitare mongod:, mostrerà l'errore

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

L'errore si verifica perché dbpath /data/db/(configurazione predefinita) non esiste. Devi creare una cartella di dati e impostarne l'autorizzazione.

Quindi creo una cartella sul mio sistema con il comando

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

poi corro di nuovo il mongo e ha funzionato.


14

Un po 'tardi con la risposta, ma ho riscontrato lo stesso problema

Di seguito sono riportati i passaggi che mi hanno aiutato.

  1. Vai a C: \
  2. Crea cartella "dati"
  3. In "dati" creare la cartella "db"
  4. terminale aperto (CMD) -> vai a EX: " c:\MongoDB\Server\3.4\bin"
  5. digitare mongod => questo avvierà il server mongo (lasciarlo aperto)

Esegui utilizzando una GUI, EX "robomongo"

O

apri nuovo terminale (CMD) -> vai su EX: " c:\MongoDB\Server\3.4\bin" digita il comando "mongo"


12

Sono un utente di Windows e ho installato MongoDB a novembre 2018 e non volevo impostare directory dati / db. Ma dopo alcuni giorni, quando apro, viene visualizzato un messaggio di errore:

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

Quindi ho provato a risolvere usando tutte le risposte di cui sopra e non ha funzionato. Quando ho provato a correre mongod, mi ha detto

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

Ho provato a cambiare il percorso del db (per programmare i file) tramite il file system e usando anche cmd ma quelli non hanno funzionato.

La soluzione che ha funzionato per me è:

Ha aperto Task Manager ( ctrl + shift + esc) -> scheda Servizi e c'era una riga MongoDB con lo stato arrestato . Quindi ho fatto clic con il tasto destro e ho fatto clic su Start e tutto funziona perfettamente :) .


6

Se la soluzione sopra non funziona: vai su service ( start>search>services) e avvia il servizio mongodb. Quindi, in un prompt cmd, dopo essere andato nel cestino, digitare:/>mongo


5

Per connetterci con mongo dobbiamo prima avviare i servizi 'mongod'. di seguito puoi vedere:

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

Dopodiché apri un altro terminale e digita semplicemente "mongo".

Di seguito è riportato l'output che puoi vedere:

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

Il problema è stato risolto :)


4

Ho anche lo stesso problema, quindi sono stato risolto da queste due righe di codice. Spero che sia d'aiuto

systemctl start mongod
systemctl enable mongod

Risolto il mio problema!
S.M_Emamian,

3

Devo affrontare lo stesso problema dopo aver cercato molto. Risolvo questo seguendo:

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

questo ha funzionato! ma è temporaneo, quando riavvio il mio sistema non è stato eseguito di nuovo
Predator X


2

Questo stava accadendo con me oggi e l'ho risolto nel modo seguente.

Macchina: sto usando la macchina Windows 10 e ho scaricato l'ultima versione MongoDB - Community.

Quindi, il problema era che non avevo C:\data\dbcreato.

Senza creare C:\data\db, ho aperto il terminale CMD e avviato il database utilizzando il mongodcomando al terminale

C: \ YourInstallationPath \ bin> mongod

E quando ho sparato mongo comando, ho riscontrato il problema.

Twist, ho creato le cartelle necessarie ma continuavo a riscontrare il problema. E questo perché il server mongo era già in esecuzione. Per ripararlo, ho fatto fuocomongod nuovamente comando, a cui faceva automaticamente riferimento C:\data\db.

Altri utenti hanno suggerito di aggiungere C:\data\dbma non hanno parlato di mongodnuovo dell'esecuzione , il che ha risolto esattamente il mio problema.


2

Ho avuto lo stesso problema a connettere mongodb dopo l'installazione usando brew su macOS.

Il problema era anche, mongod.lockma prima avevo installato mongodb 3.6 e la directory del database era/usr/local/var/mongodb e aveva vecchi file emongod.lock

Semplicemente ho spostato i miei vecchi file di database in cartelle diverse e rimosso tutto /usr/local/var/mongodb

Quindi riavviato:

brew services restart mongodb

E ora funziona bene.


2

nel mio caso in Windows e Ubuntu, dovevo creare /data/db cartella in root. In Ubuntu, avevo bisogno di un'opzione aggiuntiva; per dare le autorizzazioni per la directory.

finestre

mkdir c:/data/db

ubuntu:

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

quindi corri

sudo service mongod start

dai un'occhiata

sudo service mongod status

e poi corri

mongo

2

Stavo ottenendo questo errore su Ubuntu ma puoi provare con il seguente comando:

sudo service mongod start

1

Un'altra soluzione che ha risolto questo stesso errore per me, anche se questo potrebbe essere solo se si accede a mongo (localmente) tramite una connessione SSH tramite una macchina virtuale (almeno questa è la mia configurazione) e potrebbe essere un problema di variabile di ambiente specifico di Linux:

export LC_ALL=C

Inoltre, ho avuto più successo nell'esecuzione di mongo come servizio daemon rispetto all'avvio del servizio sudo, la mia comprensione è che questo utilizza argomenti della riga di comando piuttosto che il file di configurazione, quindi probabilmente è un problema con il mio file di configurazione:

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

1

Crea la cartella C: data / db se non esiste già sul tuo computer. Risulta che MongoDB richiede l'esistenza di questa struttura di cartelle 'data / db' per funzionare. Spero che questo aiuti qualcuno.


1

La causa per me è stata lo spazio: eseguilo nella console:

df -h

o più specificamente:

du -hs /var/lib/mongodb/ 

per verificare l'utilizzo del disco. Se è ~ 99%, pulisci un po 'di spazio e riprova!


1

Per prima cosa, vai a c:\mongodb\bin>attivare mongoDB, se vedi nella console che mongo è in ascolto nella porta 27017, è OK In caso contrario, chiudi la console e crea la cartella c:\data\dbe riavvia mongod


1

se tutta la soluzione sopra non funziona, forse questo potrebbe essere uno di aiuto. Da qualche parte lungo la linea potresti aver effettuato la connessione al database mongodb locale tramite box vagabondi.

  1. vagrant up e poi ssh nella tua macchina vagabonda in cui hai creato una connessione con mongodb (vagrant ssh vagrant_box_name)
  2. commentare la riga bind_ip da /etc/mongod.conf usando # (sudo nano /etc/mongod.conf)
  3. riavvia il tuo servizio demone mongodb (sudo service mongod restart) voilà ...

1

Avviare il servizio monogdb utilizzando

sudo service mongod start 

quindi dalla nuova finestra o terminale avvia mongo client usando

mongo

0

Rimuovere il file mongod.lock. Ed esegui "mongod -repair". disinstallare / reinstallare il servizio mongod risolto il problema per me.

Grazie.



0

Finalmente ho capito che è in modo semplice ..

apri il terminale e vai alla posizione mongodb. Nel mio caso lo è

e:\mongodb\bin> 

e digitare il comando seguente e premere invio ..

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

Apri un altro terminale e avvia mongodb usando

mongo.exe

Questo è tutto .. puoi usare mongo


0

Questa è una vecchia domanda, ma, come principiante, ho pensato di aggiungere che (usando Webstorm) è necessario fare clic su Mongo Explorer (scheda all'estrema destra della finestra). Da li:

-Fare clic su Impostazioni. -Fare clic sul pulsante Sfoglia (sembra un pulsante con "..." su di esso). -Vai a Programmi> MongoDB> Server> 3.4> bin> mongo.exe (la tua versione potrebbe essere diversa dalla 3.4) -Dopodiché, fai clic sul segno più verde a destra. Si aprirà una finestra -Inserire un nome nello slot "Etichetta". -Fai clic su Applica.

Ora dovresti essere connesso. Inserire "mongod" nel terminale non è sufficiente. Devi fare anche i passaggi precedenti.

Mi scuso in anticipo con quelli di voi che non usano Webstorm! Non sono sicuro dei passaggi che utilizzano altri IDE.


0

se esegui l'installazione di brew (su osx) per prima cosa sudo mkdir /data/db avvia il demone mondoDB digitando mongod(lascialo aperto) e quindi esegui mongo digitando la mongonuova scheda terminale


0

Basta creare una cartella denominata "dati" nell'unità C e all'interno della cartella dati creare un'altra cartella denominata "db". Quindi eseguire mongod.exe :)


Cosa ti fa pensare che il richiedente abbia Windows o che l'installazione di MongoDB non sia riuscita?
Nemo,
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.