2015-06-18 19 views
16

Ho recentemente creato un account in mongoLab. Quando sto cercando di connettermi al database usando la seguente istruzione.Impossibile collegarsi a mongolab, Ottenere MongoError: auth failed

var mongoose = require('mongoose'); 
mongoose.connect('mongodb://mk:[email protected]:47742/mkdb'); 

sto ottenendo sempre il seguente errore

MongoError: auth failed 
at Function.MongoError.create (/Users/a042292/Desktop/start/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/error.js:31:11) 
at /Users/a042292/Desktop/start/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:793:66 
at Callbacks.emit (/Users/a042292/Desktop/start/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:94:3) 
at null.messageHandler (/Users/a042292/Desktop/start/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:235:23) 
at Socket.<anonymous> (/Users/a042292/Desktop/start/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/connection/connection.js:259:22) 
at Socket.emit (events.js:107:17) 
at readableAddChunk (_stream_readable.js:163:16) 
at Socket.Readable.push (_stream_readable.js:126:10) 
at TCP.onread (net.js:538:20) 
+0

db nome utente e la password è corretta solo – mkuniyil

+0

sembra mongolab non fornisce la connessione. Ho provato a eseguire il ping di ds047742.mongolab.com, ma non è possibile connettersi all'host remoto – mkuniyil

+0

ciao, puoi consultare i nostri documenti di risoluzione dei problemi qui: http://docs.mongolab.com/connecting/#help. non esitate a contattarci via email se avete domande o non è possibile iniziare. –

risposta

1

1- assicurarsi che il db è installato e funzionante. 2- non dimenticare di creare l'utente db per avere le credenziali di accesso.

Desideri che ti possano aiutare!

+0

Come posso controllare se il db è in esecuzione? Ho provato il ping – Lazy

24

Mongolab ha aggiornato i loro database 2.6.x a 3.0.x. Sfortunatamente mongo3 ha un diverso meccanismo di autenticazione, quindi i vecchi client non sono compatibili.

Mongoose utilizza il driver mongo nativo per cui è necessario aggiornarlo. Questo di solito è fatto aggiornando l'installazione locale di mongo.

per coloro che utilizzano mongojs, l'aggiornamento alla versione più recente e aggiungere il parametro authMechanism:'ScramSHA1' nelle opzioni oggetto al momento della connessione:

db = mongojs('mongodb://username:[email protected]:32132/mydb', ["mycollection"], {authMechanism: 'ScramSHA1'}); 
+2

I parametri sono diversi per 'mongoose.connect'? – thetallweeks

+0

@thetallweeks No, se aggiorni l'installazione locale di mongo, l'app si collegherà con gli stessi parametri. – gtsouk

+1

Potrebbe anche essere la versione del nodo troppo vecchia. Ho iniziato la mia applicazione tramite il tutorial del nodo heroku, quindi la versione del nodo che ho usato sul server era 0 punto qualcosa. Non ha creato problemi fino all'aggiornamento di mongolab. La mia app funziona bene da quando ho aggiornato il nodo localmente e sul server tramite package.json. – MyrionSC2

26

Assicurarsi di utilizzare il database username e password non l'account username e password di Mlab.

In MLAB, ex MongoLab, effettuare le seguenti operazioni

  1. Spostarsi Users
  2. Add Database User
  3. Scegliete il nome utente e la password

Ora è possibile verificare questo sul guscio con mongo ds061374.mlab.com:61374/yourdb -u <dbuser> -p <dbpassword>

+2

"Assicurati di utilizzare il nome utente e la password del database, non il nome utente e la password dell'account da Mlab" mi ha salvato la vita –

+0

davvero chiaro. Grazie, mi ha salvato molto più tempo perso a giocherellare con questo. Ero convinto che avesse qualcosa a che fare con il caricamento dell'URL da un file .env>. < –

+0

Grazie. Ha funzionato –

2

Database User create Qui dobbiamo sapere che il nome utente e la password di mLab non sono il nome utente e la password per il nostro database ... lì dobbiamo controllare se abbiamo usato username e password corretti per la connessione String

possiamo creare database degli account utente qui ---- >>

la mia connessione const come segue

const db ="mongodb://<My database username>:<my database password>.mlab.com:39648/videoplayer"