2014-05-03 6 views
19

Ho installato MongoDB usando macports e ho provato a eseguire il comando mongo per avviare la shell mongo. Ho ricevuto i seguenti errori:Impossibile connettersi a MongoDB errno: 61

warning: 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 

Allora ho fatto funzionare mongod e ha ricevuto il seguente errore:

$ [initandlisten] MongoDB starting : pid=11984 port=27017 dbpath=/data/db 64-bit host=Nikitas-MacBook-Air.local 
$ [initandlisten] 
$ [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000 
$ [initandlisten] db version v2.6.0 
$ [initandlisten] git version: nogitversion 
$ [initandlisten] build info: Darwin tennine-slave.macports.org 13.1.0 Darwin Kernel Version 
13.1.0: Thu Jan 16 19:40:37 PST 2014; root:xnu-2422.90.20~2/RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_55 
$ [initandlisten] allocator: tcmalloc 
$ [initandlisten] options: {} 
$ [initandlisten] exception in initAndListen: 10296 
********************************************************************* 
ERROR: dbpath (/data/db) does not exist. 
Create this directory or give existing directory in --dbpath. 
See http://dochub.mongodb.org/core/startingandstoppingmongo 
********************************************************************* 
, terminating 
$ [initandlisten] dbexit: 
$ [initandlisten] shutdown: going to close listening sockets... 
$ [initandlisten] shutdown: going to flush diaglog... 
$ [initandlisten] shutdown: going to close sockets... 
$ [initandlisten] shutdown: waiting for fs preallocator... 
$ [initandlisten] shutdown: lock for final commit... 
$ [initandlisten] shutdown: final commit... 
$ [initandlisten] shutdown: closing all files... 
$ [initandlisten] closeAllFiles() finished 
$ [initandlisten] dbexit: really exiting now 

Dove faccio a creare la directory /data/db, alla radice? Il secondo errore sarebbe il motivo per il errno:61 quando eseguo mongo?

risposta

20

Sì, creeresti /data/db alla radice. Il MongoDB Documentation suggerisce il seguente comando per la creazione su OS X mkdir -p /data/db.

Per quanto riguarda la seconda domanda, anche sì. Dal momento che il daemon Mongo non è stato avviato e non sta ascoltando, si ottiene l'errore di connessione.

MongoDB è impostato su /data/db per la directory dei dati. È possibile sovrascrivere il valore predefinito utilizzando l'opzione --dbpath sul comando mongod (anche sul collegamento doc sopra).

+2

Questo ha funzionato, grazie. Ho creato la directory e ho usato 'sudo mongod' per aprire una connessione. Dopo ho usato 'mongo' e finalmente ho aperto la connessione alla shell. – Michael

+0

Forse l'utente 'mongod' dovrebbe possedere la directory? – tsikov

3
** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000 

è possibile aggiungere una riga in/etc/bashrc, l'avviso scompare.

ulimit -S -n 1024 

uso chown -R {user} /data/db per modificare il proprietario di /data/db dalla radice a te stesso. Quindi è possibile avviare la shell mongo solo da mongo, non è necessario utilizzare sudo mongo.

23

Ho riscontrato un problema simile. Ho dettagliato la traccia di errore e soluzione on this blog Questo è processo graduale che ho fatto per risolvere questo problema:

Fase 1 - Installazione (Non seguire questo passaggio se è già stato installato MongoDB):

brew update 
brew install mongodb 

Fase 2 - Run Mongo Daemon:

mkdir -p /data/db 
sudo mongod 

Fase 3 - Run Mongo Shell Interfaccia:

mongo 

In questa sequenza, sono stato in grado di eseguire il comando mongo senza errori.

+0

Ho una domanda che dovrei sempre tenere una finestra terminale per il processo mongod? – Sinux

+0

Se si desidera che si avvii automaticamente all'avvio, è possibile utilizzare questa semplice utilità su [sito mongodb] (http://blog.mongodb.org/post/28925264384/macosx-preferences-pane-for-mongodb). Ha questa opzione per avviare automaticamente il server all'avvio. –