在 go 语言中,通常使用 mongo-drvier 访问 mongodb, 今天在使用中遇到一则奇怪错误提示: auth error: sasl conversation error: unable to authenticate using mechanism “SCRAM-SHA-1”: (AuthenticationFailed) Authentication failed, 看起来好像是认证机制出问题了,所以一开始朝一个错误的解决方向去努力, 浪费了不少时间。

要连接的目标数据库使用了用户验证机制, 因此在 mongo-drive 中使用了如下的 options:

1
clientOptions := options.Client().ApplyURI("mongodb://admin:xxxxxx@localhost:27017/testdb?authSource=admin")

结果就一直报错,看提示,以为是验证机制的问题,改为:

1
clientOptions := options.Client().ApplyURI("mongodb://admin:xxxxxx@localhost:27017/testdb?authSource=admin&authMechanism=PLAIN")

还是不行,有根据官方文档 换了几种机制都不行。

最后决定先用命令行登录试试,才发现是用户名和密码写错了,改了就好了。 准确的错误提示信息很重要啊。

当连接串(URI)中指定的数据库不存在也会报同样的错误信息

TAGS