我在使用Casbah连接到我的mongo数据库时遇到问题,它可以与ReactiveMongo一起使用。以下是Casbah使用的代码:
val client = MongoClient(MongoClientURI("my_uri"))
和ReactiveMongo:this.driver(actorSystem).connection(MongoConnection.parseURI("my_uri"))
。我与Casbah的错误是:{ "serverUsed" : "host:27017" , "ok" : 0.0 , "errmsg" : "auth failed" , "code" : 18}
。知道这可能来自何处?
答案 0 :(得分:0)
如果不使用MongoDB服务器的默认属性,则可能需要显式设置authMechanism
属性。
在MongoDB 3.0之前,默认的身份验证机制是MONGODB-CR
,即“MongoDB质询 - 响应”协议。在MongoDB 3.0中,默认值已更改为SCRAM-SHA-1
。
如果未设置authMechanism
,则底层Java驱动程序将根据服务器版本选择最安全的机制。
尝试将连接字符串更新为:
mongodb://login:password@host:port/database?authMechanism=MONGODB-CR