Grails-使用身份验证连接到MongoDB数据库
我正在尝试使用身份验证连接到我的MongoDB。 我在Mongo服务器上执行了以下操作:Grails-使用身份验证连接到MongoDB数据库,mongodb,authentication,grails,database-connection,database,Mongodb,Authentication,Grails,Database Connection,Database,我正在尝试使用身份验证连接到我的MongoDB。 我在Mongo服务器上执行了以下操作: use admin db.addUser('adminLogin','adminPassword') db.shutdownServer() exit 然后我再次启动服务器,发出mongod--auth 我在DataSource.groovy中设置了数据库配置,如下所示: grails { mongo { host = "localhost" port = 2701
use admin
db.addUser('adminLogin','adminPassword')
db.shutdownServer()
exit
然后我再次启动服务器,发出mongod--auth
我在DataSource.groovy中设置了数据库配置,如下所示:
grails {
mongo {
host = "localhost"
port = 27017
username = "adminLogin"
password = "adminPassword"
databaseName = "my DB name"
options {
autoConnectRetry = true
connectTimeout = 300
}
}
}
启动应用程序时,我收到以下错误消息:
ERROR context.GrailsContextLoader - Error executing bootstraps: Error creating bean
with name 'mongoDatastore': FactoryBean threw exception on object creation; nested
exception is org.springframework.data.mongodb.CannotGetMongoDbConnectionException:
Failed to authenticate to database
任何建议都欢迎。
提前谢谢 我遇到了同样的问题,所以我可以帮助解释Mongo是如何进行身份验证的。你看到你所做的是你在管理数据库中创建了一个管理用户,这很好。但是,您正试图通过管理员用户直接连接到“mydb”,这是不允许的。听起来很困惑?因为它是。为了更好地说明这一点,这里有一个简单的练习:
小心谢谢您的解决方案和详细解释。非常感谢。谢谢你花时间解释。谢谢。省去了我几个小时的沮丧。
mongo
use myDBname
db.auth("adminlogin", "adminpwd")
mongo
use admin
db.auth("adminlogin", "adminpwd")
use myDBname
mongo
use myDBname
db.addUser("dblogin", "dbpwd")