Mongo数据库身份验证不适用于grails,而是来自控制台

时间:2017-11-10 14:34:48

标签: mongodb grails

我想在我的mongodb中使用身份验证。所以我创建了一个用户。我可以在命令行上连接哪个用户并插入数据而没有任何问题。

但是当我想在grails中使用此用户时,我收到此错误:

{ "serverUsed" : "127.0.0.1:27017" , "ok" : 0.0 , "errmsg" : "auth failed" , "code" : 18 , "codeName" : "AuthenticationFailed"}

当我从命令行连接时,一切正常:

mongo --port 27017 -u "mongouser" -p "pwd" mydb

Grails中的代码:

 MongoCredential credential = MongoCredential.createMongoCRCredential("mongouser", "mydb", "pwd".toCharArray())
 def mongoClient = new MongoClient( new ServerAddress(host, port), [credential ] )
 gMongoCon = new GMongo(mongoClient)

这里有什么问题?

2 个答案:

答案 0 :(得分:0)

在Config.groovy或外部配置中添加您的mongo凭据,如下所示,

grails
        {

                mongo
                {
                    host            =   "YOUR_HOST_NAME_OR_IP_ADDRESS" // e.g localhost
                    port            =   27017
                    username        =   "mongouser" //Username
                    password        =   "pwd"       //password
                    databaseName    =   "mydb" //Database name
                }
        }
  

注意:如果应用程序和/更改/etc/mongod.conf中的bind_ip   mongo在不同的服务器上。

答案 1 :(得分:0)

This solution works:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCell(withIdentifier: "mainCell") as? mainCell

    let information:NSDictionary = [:]
    cell?.setInformation(3, information)
    return cell!
}