2014-10-28 14 views
12

Il mio problema è simile ad altri input e suggerimenti su questo sito, ma nessuno mi ha aiutato. Dopo aver installato MongoDB, non è stato avviato perché il database non è in esecuzione.MongoDB: Impossibile connettersi a 127.0.0.1:27017, motivo: errno: 61 Connessione rifiutata

Prima si tenta di eseguire mongo e ho risposto questo:

Mac-Pro-de-User: ~ user $ mongo 
MongoDB shell version: 2.6.4 
connecting to: test 
2014-10-28T10: 47: 08713-0700 warning: Failed to connect to 127.0.0.1:27017, reason: errno: 61 Connection refused 
2014-10-28T10: 47: 08713-0700 Error: could not connect to server 127.0.0.1:27017 (127.0.0.1) Attempt connection failed at src/mongo/shell/mongo.js: 146 
exception: connect failed 

Quindi provare a controllare la mongod e ho risposto questo:

Mac-Pro-de-User: ~ user $ mongod 
mongod --help for help and startup options 
2014-10-28T10: 59: 34485-0700 [initandlisten] MongoDB starting: pid = 926 port = 27017 dbpath =/data/db host = 64-bit Mac-Pro-de-Ernesto.local 
2014-10-28T10: 59: 34485-0700 [initandlisten] 
2014-10-28T10: 59: 34485-0700 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, Should be at Least 1000 
2014-10-28T10: 59: 34485-0700 [initandlisten] db version v2.6.4 
2014-10-28T10: 59: 34485-0700 [initandlisten] git version: 3a830be0eb92d772aa855ebb711ac91d658ee910 
2014-10-28T10: 59: 34485-0700 [initandlisten] Build info: Darwin bs-osx108-4 12.5.0 Darwin Kernel Version 12.5.0: Sun Sep 29 13:33:47 PDT 2013; root: xnu-2050.48.12 ~ 1/x86_64 RELEASE_X86_64 BOOST_LIB_VERSION = 1_49 
2014-10-28T10: 59: 34485-0700 [initandlisten] allocator: system 
2014-10-28T10: 59: 34485-0700 [initandlisten] options: {} 
2014-10-28T10: 59: 34486-0700 [initandlisten] journal dir =/data/db/journal 
2014-10-28T10: 59: 34486-0700 [initandlisten] recover: no journal files present, no recovery needed 
2014-10-28T10: 59: 34500-0700 [FileAllocator] allocating new datafile /data/db/local.ns, filling zeroes With ... 
2014-10-28T10: 59: 34500-0700 [FileAllocator] creating directory/data/db/_tmp 
2014-10-28T10: 59: 34512-0700 [FileAllocator] done allocating datafile /data/db/local.ns, size: 16MB, took 0.011 secs 
2014-10-28T10: 59: 34726-0700 [FileAllocator] allocating new datafile /data/db/local.0, filling zeroes With ... 
2014-10-28T10: 59: 35398-0700 [FileAllocator] done allocating datafile /data/db/local.0, size: 64MB, took 0.671 secs 
2014-10-28T10: 59: 35695-0700 [initandlisten] build index on: local.startup_log properties: {v: 1, key: {_id: 1}, name: "_id_" ns "local.startup_log"} 
2014-10-28T10: 59: 35695-0700 [initandlisten] index added to empty collection 
2014-10-28T10: 59: 35695-0700 [initandlisten] Local command $ cmd command. Create {create: "startup_log" size: 10485760, capped: true} ntoreturn: 1 KeyUpdates: 0 numYields: 0 reslen: 37 1194ms 
2014-10-28T10: 59: 35695-0700 [initandlisten] waiting for connections on port 27017 
2014-10-28T11: 00: 34516-0700 [clientcursormon] mem (MB) res: 33 virt: 2653 
2014-10-28T11: 00: 34516-0700 [clientcursormon] mapped (incl journal view): 160 
2014-10-28T11: 00: 34516-0700 [clientcursormon] connections: 0 

Quindi provare di nuovo la connessione e passare un po 'di tempo, e di nuovo dice lo stesso:

2014-10-28T11: 05: 34589-0700 [clientcursormon] mem (MB) res: 33 virt: 2653 
2014-10-28T11: 05: 34589-0700 [clientcursormon] mapped (incl journal view): 160 
2014-10-28T11: 05: 34589-0700 [clientcursormon] connections: 0 

E così via. Se puoi aiutare lo apprezzerebbe molto.

PS: C'è già l'/ data/db con 777 permessi, e sto usando OSX Mavericks 10.9.5

+0

Basta metterlo da parte - ho semplicemente acceso il mio computer e spento e ha iniziato a lavorare di nuovo. Questo mi è successo due volte – James111

risposta

19

State facendo funzionare tutti questi comandi nello stesso terminale come separato azioni come suggeriscono i tuoi timestamp? (In caso contrario, mi aspetterei di vedere sovrapposizioni tra i guasti e i registri al fine di diagnosticare correttamente).

Se è così, allora quello che stai facendo è la seguente:

  1. Avvio di una conchiglia, che tenta di connettersi a un database non in esecuzione (connessione rifiutata)
  2. partire il database, vedendo 0 collegamenti in i registri
  3. arresto del database (Ctrl-C o simili), a partire da un guscio, non riesce a connettersi di nuovo a causa di database è stato chiuso
  4. partire il database, vedendo 0 connessioni in ceppi
  5. ripetizione

Il database deve essere in esecuzione in concomitanza con la shell in modo che sia possibile connettersi ad esso. Quindi è necessario avviare il processo mongod in un terminale, lasciarlo in esecuzione, quindi aprire un nuovo terminale (o scheda) ed eseguire il comando mongo per connettersi al database ancora in esecuzione. L'altra opzione è run mongod as a daemon, che consente di eseguire il comando mongo nello stesso terminale una volta restituito.

Nota: non si dovrebbe mai avere una cartella con 777 autorizzazioni, non è necessaria ed è un rischio significativo per la sicurezza.

+1

Grazie, ha funzionato. Esegui mongod in background e si può accedere da mongo sell. Puoi dirmi che tipo di permessi si consiglia per questa cartella. Grazie ancora =) –

+1

Supponendo che sia di tua proprietà e stai eseguendo mongod come te (non usando sudo), allora 755 andrebbe bene, semplicemente non vuoi che sia scrivibile in tutto il mondo. Se non è di tua proprietà, allora chown prima ('chown -R user: staff/data/db' - sostituisce l'utente con il tuo vero nome utente). –

+0

Grazie mille =) è stato molto utile = D –

1

Basta provare questo comando.

sudo chown MongoDB /tmp/mongodb-27017.sock

E

servizio sudo mongod restart

1

fisso!

Il motivo era la variabile dbpath in /etc/mongodb.conf. In precedenza, stavo usando mongodb 1.8, dove il valore predefinito per dbpath era/data/db. Il lavoro upstart mongodb (che viene fornito con il pacchetto mongodb-10gen) richiama il mongod con l'opzione --config /etc/mongodb.conf.

Come soluzione, ho dovuto solo modificare il proprietario della directory/data/db in modo ricorsivo.

Ti piace questa: Vai a "/ dati" posizione nel terminale e quindi digitare

sudo chown -R <username>:foldername

Ad esempio:

sudo chown -R raja db/

0

Ciao basta controllare se hai creato il percorso/data/db e se lo hai fatto allora dai un 755 per missione con chmod.

+1

Benvenuti in SO! C'è già una risposta accettata a queste domande che l'autore ha confermato funzionante. Si prega di evitare di aggiungere risposte a meno che non forniscano qualcosa di nuovo. Inoltre, l'esecuzione con 777 può essere un problema di sicurezza e dovrebbe essere evitata. – ext

Problemi correlati