Golang 中国

使用Java连接可以成功
连接字符串为mongodb://admin:adgjmptw@localhost/test
同样的连接字符串用go语言连接一直错误
2015/06/04 18:05:22 auth failed
使用Database 的Login方法返回error
2015/06/04 18:06:40 Login errauth failed
求大神解决


Memory_Leak 于 2015-06-04 10:09 修改
7 回复
jimmykuu
#1 jimmykuu • 2015-06-04 13:19

直接这样不行?

session, err := mgo.Dial("mongodb://admin:adgjmptw@localhost/test")
Memory_Leak
#2 Memory_Leak • 2015-06-04 15:16

是啊
session, err := mgo.Dial("mongodb://admin:adgjmptw@localhost/test")
这样也会报错 auth failed
直接在mongo shell里登录就没事儿

Memory_Leak
#3 Memory_Leak • 2015-06-06 00:49

看来只能我自己來终结此帖了。。。

我在公司电脑(Ubuntu)装的mongodb版本是3.0,使用的驱动是labix.org/v2/mgo
使用

session, err := mgo.Dial("mongodb://admin:adgjmptw@localhost/test")

各种连接失败
后来用自己电脑(Fedora21+mongodb2),使用相同的连接方法,就能连接成功了。
可能是我用的驱动版本不支持新版本的mongodb吧

CJL
#4 CJL • 2015-11-24 02:18

我也遇到同样的问题,用其它语言连可以,用 mgo 就不行。后来把验证分成两步写就连上了:

// host 是不带用户名密码的连接地址
session, err := mgo.Dial(host)
if err != nil {
    panic(err)
}

err = session.DB(db).Login(user, pass)
if err != nil {
    panic(err)
}
Skycat
#5 Skycat • 2015-11-24 04:57

mgo驱动问题 连接3.0的mongodb会出现验证问题,看文档没看见v2的驱动如何添加验证

wangxufire
#6 wangxufire • 2015-11-24 06:28

mongodb3.0.7 mgoV2
session, err := mgo.Dial(“mongodb://admin:adgjmptw@localhost/test”)

可以连啊。
ArchLinux

LoveCoati
#7 LoveCoati • 2018-12-26 03:08

这几天维护一份就代码,现在连接的是mongodb3.0.15 用了上面的方法都不行,参考了下面的问题回答最后更新了github上的代码后解决了 mgo

需要 登录 后方可回复, 如果你还没有账号你可以 注册 一个帐号。