mongolab - La conexión a la base de datos MongoDB en mLab falla la autenticación
mongodb_uri heroku (8)
A partir de marzo de 2016, mLab.com solo es compatible con mongo 3.0+ (según una conversación con soporte), debido a sus nuevos y onerosos requisitos de autenticación.
Esto no estaba en el sitio web, ¡pero espero que ayude a alguien aquí!
Tengo una aplicación Parse, y estoy tratando de migrar la base de datos de mi aplicación a una instancia de MongoDB en mLab.
Ya tengo un fork de Parse Server configurado en Heroku, y estoy usando el complemento mLab MongoDB de Heroku.
Tengo una base de datos en mLab llamada heroku_1ksph3jj
, y debería poder conectarme a ella con la siguiente plantilla:
mongodb://<dbuser>:<dbpassword>@ds047124.mlab.com:47124/heroku_1ksph3jj
Sin embargo, cada intento regresa:
Server returned error on SASL authentication step: Authentication failed.
No estoy seguro de qué reemplazar <dbuser>
y <dbpassword>
con. Tengo un usuario de base de datos con el mismo nombre que mi base de datos: heroku_1ksph3jjz
, así que lo usé. Y utilicé la contraseña para ese usuario en lugar de <dbpassword>
. ¿Debería haber usado algo más aquí?
Comprueba tu versión de mongo client. Si está en una versión mayor anterior (probablemente 2.x), actualícela a 3.x
Hay un mensaje para crear un usuario para la base de datos específica: se requiere que un usuario de la base de datos se conecte a esta base de datos. Para crear uno ahora, visite la pestaña ''Usuarios'' y haga clic en el botón ''Agregar usuario de base de datos''
Lamento mucho que esto pueda parecer obvio, pero debes quitar estos caracteres <> para que la migración funcione
En su ejemplo se vería así: mongodb: // dbuser: [email protected]: 47124 / heroku_1ksph3jj
Parece que la contraseña era incorrecta, y asumo que fue creada por el complemento mLab de Heroku. No había una manera obvia de restablecer esto en la interfaz de usuario de mLab, así que al final creé otro usuario de base de datos (con un nuevo nombre de usuario y contraseña) y pude conectarme con eso muy bien.
Puede obtener dbuser y dbpass con:
heroku config | grep MONGODB_URI
Agarre dbuser (example_user) y dbpass (example_pass) de la respuesta:
MONGOLAB_URI: mongodb://example_user:[email protected]:12345/db
Sé que estoy demasiado tarde, solo por información. Para obtener la información de la cuenta mLab que se creó automáticamente cuando el complemento mLab se agregó a la aplicación en su cuenta heroku, intente con el siguiente comando.
heroku config:get MONGODB_URI
Ref: http://algebra.sci.csueastbay.edu/~grewe/CS6320/Mat/NodeJS/Heroku/Heroku_MLabMongoDB.html
Para futuros visitantes : no use caracteres especiales en la contraseña. Incluso si cambia el carácter especial a ascii o unicode , no funcionará para mLab usando mangosta .
Además, no use la credencial mLab, use credenciales de usuario de db. Creé un nuevo usuario.
P.ej. Para mí, se reemplazó una contraseña que contenía @ character con el valor ascii % 40 en URI, que funcionaba cuando se usaba el controlador mongodb nativo . Pero al usar la mangosta, siempre estaba fallando la autenticación . Eliminé caracteres especiales y db se autenticó a través de mangosta.