SASL身份验证步骤中服务器返回错误:身份验证失败

时间:2016-08-03 12:47:09

标签: mongodb authentication go mgo

以下是GoLang的MongoDB连接拨号。但它在SASL身份验证步骤中返回了恐慌" 服务器返回错误:身份验证失败。"。我的用户名,密码,hostAddrs和dbName都是正确的。我在这里缺少什么?

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)

}

9 个答案:

答案 0 :(得分:105)

我遇到了类似的错误并添加了new Vue({ el: '#app', components: { 'my-component': { data: function() { return { firstname: 'John', lastname: 'Smith' } }, template: ` <div> My message: <span><slot :firstname="firstname"></slot></span> </div> ` } } }); 参数,它在我们连接到远程MongoDB时工作

在您的代码中使用以下类似的格式:

<div id="app">
  <my-component>
    <template scope="{firstname}">
        Hello {{firstname}}
    </template>
  </my-component>
</div>

答案 1 :(得分:11)

我们常常将mongoexport命令中的参数与“Log-In”用户混淆。 该命令需要“数据库用户名”不是登录用户名。 这是输入错误用户名的一种可能性。 “数据库用户名”可以在数据库的“用户”选项卡中找到

答案 2 :(得分:3)

如果mgousernamepassword错误,

database会返回此错误。检查您的凭据两次。当您看到Authentication failed错误消息时,没有其他情况。

答案 3 :(得分:1)

您报告的错误似乎导致身份验证失败是由nil指针引起的,您应该在使用它们创建连接之前检查数据

答案 4 :(得分:1)

我从这个链接得到了答案:https://newbiedba.wordpress.com/2016/11/21/mongodb-3-2-server-returned-error-on-sasl-authentication-step-authentication-failed/

除上述所有答案外,唯一未提及的原因是我的密码具有特殊字符&#39; $&#39;在里面。我认为这是一个非常常见的做法,有特殊字符,如果没有这个简单的提示,这可能会绊倒很多:

使用命令行mongo / mongostat / etc时。单引用具有特殊字符的用户名或密码!

答案 5 :(得分:1)

在通过--uri标志使用Heroku应用程序的连接字符串时遇到此错误。在我的情况下,解决此问题的方法是使用-d添加数据库名称:

mongodb_uri="$(heroku config:get MONGODB_URI -a myapp)"
mongorestore --uri=$mongodb_uri -d heroku_7m41q4xs db/

答案 6 :(得分:0)

与dokku mongo:import一起使用时,我遇到了相同的错误。在我的情况下,我在数据库名称中包含了点(句点)

当'dokku mongo:create'时,不应在mongodb名称中包含点号。 我将其更改为seunghunlee,而不是seunghunlee.net 现在该命令有效

dokku mongo:import seunghunlee < seunghunlee.net.dump.gz

希望有帮助!

答案 7 :(得分:0)

在我的情况下,我同时缺少--authenticationDatabase和--ssl,因此这里介绍了将json文件通过Atlas集群导入到Mongodb集合中的完整语法(进入主碎片):

./mongoimport --host mycluster-shard-00-02.d0b2r.mongodb.net:27017 --authenticationDatabase admin --username TestUser --db Test --collection Messages --type json --file RAW.json --ssl

答案 8 :(得分:-2)

我能够使用--uri执行导出。 一个示例为mongoexport --uri "mongodb://mongodb0.example.com:27017/reporting" --collection events --out events.json [additional options]

请参阅docs here