良玉的博客 点点滴滴,积水成河_良玉的博客_页游、手游linux运维工程师之路

php连mongodb认证报错,但是命令连是正常

今天测试php连MongoDB,报错

Failed to authenticate uouo123@blog with mechanism MONGODB-CR: AuthenticationFailed MONGODB-CR credentials missing in the user document


发现是因为mongodb验证方式改变,加入了(SCRAM)SHA-1

在mongo里将刚创建用户删除

use blog

db.dropUser('uouo123') 

关闭验证重启数据库

在mongo里修改system.version文档里面的authSchema版本为3(旧版本)

use admin

db.system.version.find()

可以看到:{ "_id" : "authSchema", "currentVersion" : 5 }

下面开始修改

db.system.version.update({'_id':'authSchema'},{$set:{'currentVersion':3}})

db.system.version.find()

可以看到:{ "_id" : "authSchema", "currentVersion" : 3 }

 

删除之前创建的用户,重新创建用户(这一次使用验证方式为MONGODB-CR)

复制代码

use blog

db.dropUser('uouo123')

db.createUser({user:'uouo123',pwd:'uouo123',roles:[{role:'dbOwner',db:'blog'}] })


然后再测试,就可以了

<?php

$username="uouo123";

$password="uouo123";

$host="localhost";

$port="1234";

$dbname="blog";

$mongo = new Mongo("mongodb://${username}:${password}@${host}:${port}/${dbname}");


留言列表
发表评论
来宾的头像