El siguiente es mi dial de conexión MongoDB de GoLang. Pero está devolviendo un mensaje de pánico "el servidor devolvió un error en el paso de autenticación SASL: la autenticación falló ". Mi nombre de usuario, contraseña, hostAddrs y dbName son correctos. ¿Que me estoy perdiendo aqui?
dbName: = os.Getenv("ENV_DBNAME") userName: = os.Getenv("ENV_DBUSER") password: = os.Getenv("ENV_DBPASS") dbHost: = os.Getenv("ENV_DBHOST") mongoDialInfo: = & mgo.DialInfo { Addrs: [] string { dbHost }, Database: dbName, Username: userName, Password: password, Timeout: 60 * time.Second, } sess, err: = mgo.DialWithInfo(mongoDialInfo) if (err != nil) { panic(err) }Enfrenté un error similar y agregué el parámetro --authenticationDatabase y funcionó mientras nos conectamos a un MongoDB remoto
Use el siguiente formato similar en su código:
$mongorestore --host databasehost:98761 --username restoreuser --password restorepwd --authenticationDatabase admin --db targetdb ./path/to/dump/A menudo confundimos con el parámetro en el comando mongoexport con el usuario "Iniciar sesión". El comando espera "Nombre de usuario de la base de datos", no el nombre de usuario de inicio de sesión. Esta es una posibilidad de ingresar un nombre de usuario incorrecto. El "Nombre de usuario de la base de datos" se puede encontrar en la pestaña "Usuarios" de una base de datos
Obtuve mi respuesta de este enlace: https://newbiedba.wordpress.com/2016/11/21/mongodb-3-2-server-returned-error-on-sasl-authentication-step-authentication-failed/
Excepto por todas las respuestas anteriores, la única razón no mencionada es que mi contraseña tiene un carácter especial '$'. Creo que esta es una práctica muy común para tener caracteres especiales y esto puede hacer tropezar a muchos sin este simple consejo:
Al usar la línea de comando mongo/mongostat/etc. ¡Comillas simples tu nombre de usuario o contraseña que tiene caracteres especiales!