
MongoDB鉴权降级
发布日期:2025-04-14 17:59:25
浏览次数:8
分类:精选文章
本文共 1323 字,大约阅读时间需要 4 分钟。
MongoDB迁移后PHP客户端连接异常问题排查
背景
由于MongoDB迁移导致PHP客户端连接数据库异常,排查发现MongoDB3.0版本的鉴权认证机制采用了SCRAM-SHA-1协议,程序驱动出现异常,需要对鉴权机制进行降级,改用MONGODB-CR进行认证。
鉴权降级操作步骤
在无鉴权状态下登录,执行以下操作:
1. 配置文件注释鉴权
编辑配置文件,注释掉相关鉴权配置:
# security:# keyFile: /data1/ceshi27020_mongo/etc/keyfile# authorization: enabled
2. 重启MongoDB
执行sudo systemctl restart mongodb
命令重启MongoDB服务。
3. 执行降级命令
在主节点运行以下命令:
db.system.users.find()db.system.version.findOne()var schema = db.system.version.findOne({"_id" : "authSchema"})schema.currentVersion = 3db.system.version.save(schema)
4. 重建用户
删除现有用户并创建新用户:
db.dropUser('test_rw')db.createUser({ "user": "test_rw", "pwd": "iwoCsl173", "roles": [{ "role": "readWrite", "db": "lsession" }]})
5. 开启鉴权
编辑配置文件,启用鉴权:
# security:# keyFile: /data1/ceshi27020_mongo/etc/keyfile# authorization: enabled
鉴权认证机制说明
- SCRAM-SHA-1:MongoDB3.0版本默认使用的认证协议。
- MONGODB-CR:降级后的认证协议。
PHP连接MongoDB示例代码
'admin', 'username' => 'dba', 'password' => 'xxxxxxxx', 'replicaSet' => 'test3', 'readPreference' => MongoClient::RP_SECONDARY_PREFERRED, 'connectTimeoutMS' => 5000);$mongo = new MongoClient($server, $options);$db = $mongo->selectDB('zyq');$coll = $db->selectCollection('test10');$result = $coll->find(array("userid" => 30748));while ($doc = $result->getNext()) { var_dump($doc);}
转载声明
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年05月09日 09时50分35秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
MySQL DBA 进阶知识详解
2025-04-15
Mysql DBA 高级运维学习之路-DQL语句之select知识讲解
2025-04-15
MurmurHash 与其他哈希算法的区别
2025-04-15
Musetalk如何优化嘴部,提高清晰度?
2025-04-15
MuseTalk如何生成高质量视频(使用技巧)
2025-04-15
mysql default unix_timestamp(now())
2025-04-15
mutiplemap 总结
2025-04-15
MySQL DELETE 表别名问题
2025-04-15
MySql DML语言新增多行数据、修改删除多个表
2025-04-15
MVC 301重定向(永久重定向不带www域名到带www的域名)
2025-04-15
Mysql Dump命令
2025-04-15
Mvc Action可以通过jsonp方式调取
2025-04-15
MVC aspx
2025-04-15