yii2连接MongoDb3.0出错,Authentication failed 。

发布于 2022-09-04 09:24:08 字数 1144 浏览 26 评论 0

请问,这是怎么回事?第一次使用yii2,请各路大神指点。
本地安装的mongodb3.2.4、composer安装的yii2。
mongodb的权限已经配置更好完毕,

使用auth之前,无法使用show dbs命令
clipboard.png

使用auth验证后可以使用show dbs命令,说明auth已经配置好了

clipboard.png

yii2配置如下
composer.json
clipboard.png
在web.php的components中配置
clipboard.png
控制器中如下
clipboard.png
之后浏览器中报错

clipboard.png

请问,这是怎么回事?第一次使用yii2,请各路大神指点。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ヤ经典坏疍 2022-09-11 09:24:08

具体可以参见文章Yii2连接mongo权限问题(AuthenticationException)

权限问题,这里的权限是指mongoDB的权限,也就是你给的用户名密码han:123123无法操作你指定的数据库demo

其原因在于,你建立的账号han没有包含在数据库demo下。我猜你是把该账号建立在admin数据库下了。

当初建立账号时,你一定是如下执行的:

> use admin
> db.createUser({
    user:'han',
    pwd:'123123',
    roles:[
        role:'readWrite',
        db:'han'
    ]
})

这样建立的用户是建立在admin数据库下的。你可以执行show users查看到当前数据库下有哪些用户。

解决这个问题,只需要切换到相应的数据库下,建立用户即可:

# 这一步是关键,切换到相应的数据库下
> use demo
# 下面是一样的
> db.createUser({
    user:'han',
    pwd:'123123',
    roles:[
        role:'readWrite',
        db:'demo'
    ]
})

这个问题和http://www.yiichina.com/question/2086问题相同,可以相互参考。答案都是本人回答的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文