2016-03-18 31 views
22

Ho un'app Parse e sto provando a migrare il database della mia app in un'istanza MongoDB su mLab.Connessione al database MongoDB su mLab fallisce l'autenticazione

Ho già un fork di Parse Server impostato su Heroku e sto usando il componente aggiuntivo mLab MongoDB di Heroku.

Ho un database su MLAB chiamato heroku_1ksph3jj, e dovrei essere in grado di connettersi ad esso con la seguente configurazione:

mongodb://<dbuser>:<dbpassword>@ds047124.mlab.com:47124/heroku_1ksph3jj

Tuttavia, ogni tentativo di ritorni:

Server returned error on SASL authentication step: Authentication failed.

Non so cosa sostituire <dbuser> e <dbpassword> con. Ho un utente di database con lo stesso nome del mio database: heroku_1ksph3jjz, quindi l'ho usato. E ho usato la password per quell'utente al posto di <dbpassword>. Dovrei aver usato qualcos'altro qui?

risposta

39

È possibile ottenere il dbuser e dbpass con:

heroku config | grep MONGODB_URI

Afferrare il dbuser (example_user) e dbpass (example_pass) dalla risposta:

MONGOLAB_URI: mongodb://example_user:[email protected]:12345/db

+1

Grande, grazie. Questa è una soluzione migliore rispetto alla semplice creazione di un nuovo utente del database se si dimentica la password. – AdColvin

+0

Il 15/07/2016 è ora 'heroku config | grep MONGODB_URI' –

2

Sembra che fosse la password non corretta, che presumo sia stata configurata dal componente aggiuntivo di mLab di Heroku. Non c'era un modo ovvio per resettare questo nell'interfaccia utente di mLab, quindi alla fine ho creato un altro utente di database (con un nuovo nome utente e password) ed è stato in grado di connettermi con quello.

10

A partire dal marzo 2016 , mLab.com supporta solo mongo 3.0+ (come per una conversazione con supporto), a causa dei nuovi requisiti di autenticazione onerosi.

Questo non era sul sito web, ma spero che aiuti qualcuno qui!

+0

Ma c'è una soluzione? –

+1

La mia soluzione era quella di entrare in una scatola fugly dev che avevo da qualche altra parte, scaricare il client mongo 3+ (su Centos 7 è davvero facile) e non imbrogliare il mio mac quotidiano! Spero che questo aiuti :) – lol

+0

Ha sicuramente aiutato, attualmente la versione di mongo su Ubuntu defaults PPA è 2.6, non avrei mai superato l'autenticazione anche con credenziali corrette, grazie mille per questo! – Miguelgraz

3

Mi dispiace che questo può sembrare ovvio, ma, è necessario rimuovere questi personaggi <> per la migrazione di lavorare

Nel tuo esempio sarebbe simile a questa: mongodb: // dbuser: [email protected]: 47124/heroku_1ksph3jj

+0

Grazie, ho appena messo quelli lì per mostrare che l'utente e la password erano segnaposto. Li ho rimossi prima di provare a connetterti. – AdColvin

+1

questa è la risposta corretta. seriamente grazie. nessun indizio del perché tutti gli altri parlino di versioni. grazie! – Ibdakine

3

Controlla la versione del tuo client mongo. Se è nella versione principale più vecchia (probabilmente 2.x), aggiornalo a 3.x

+0

Ecco fatto. Grazie per il consiglio. –

7

C'è un messaggio per creare un utente per il database specifico: Per connettersi a questo database è necessario un utente del database. Per creare uno ora, visita la scheda 'Utenti' e fare clic sul pulsante 'Aggiungi utente del database'

2

Per i visitatori futuri - non utilizzare caratteri speciali la password .Anche se si modifica il carattere speciale di ascii o unicode non funzionerà per mLab utilizzando mangusta.

Inoltre, non utilizzare le credenziali mLab, utilizzare le credenziali utente db. Ho creato un nuovo utente.

Es. Per me una password contenente @ personaggio è stato sostituito con ascii valore % 40 in URI, che ha funzionato quando si utilizza nativo conducenteMongoDB. Ma usando la mangusta, ricevevo sempre Autenticazione non riuscita. Ho rimosso caratteri speciali e db è stato autenticato tramite mangusta.

+1

Ho anche provato una password utilizzando un @, e la connessione non è riuscita. Questo è ancora un problema! – jessi