共计 1888 个字符,预计需要花费 5 分钟才能阅读完成。
MongoDB 开启或者关闭授权功能时还是挺麻烦的,需要新建服务键入 mongod –auth。为了方便,我这里是建了两个服务,用到哪个就切换至哪个服务。
-- 需要授权mongod --logpath "D:\data\log\mongodb.log" --logappend --dbpath "D:\data\db" --auth --serviceName "MongoDBService" --serviceDisplayName "MongoDBService" --install-- 不需要授权mongod --logpath "D:\data\log\mongodb.log" --logappend --dbpath "D:\data\db" --serviceName "MongoDBServiceNoAuth" --serviceDisplayName "MongoDBServiceNoAuth" --install进入正题,我这边配置 mongodb 后,本地是可以通过 db.auth(‘username’,’password’)进入的,远程使用客户端工具及 c# 代码都无法进入。检查并没有开启防火墙,mongodb 数据库又是默认所有 ip 都可以访问的。
后来偶然看到 ”使用 Robomongo 连接 MongoDB 3.x 报 Authorization failed 解决办法 “ 这篇文章按照上面的方法做就可以了。
1. 首先我这边通过数据库版本查看发现是这样的。
> use adminswitched to db admin> db.system.version.find(){"_id" : "featureCompatibilityVersion", "version" : "3.4" }{"_id" : "authSchema", "currentVersion" : 5 }2. 开启 MongoDBServiceNoAuth 服务,使用 db.dropUser(‘username’)命令删除之前所有原有的用户,再执行版本更改命令。
>db.dropUser('admin')>db.dropUser('root')>db.dropUser('dba')>db.system.version.update({"_id":"authSchema"},{$set:{"currentVersion":3}})3. 去重复创建用户
> db.createUser({user:"admin",pwd:"********",roles:[{"role":"userAdminAnyDatabase","db":"admin"},{"role":"readWrite","db":"qxkf"}]})Successfully added user: { "user" : "admin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" }, { "role" : "readWrite", "db" : "qxkf" } ]}4. 可以使用 Robomongo 工具检测是否可以访问,这里显示是 PASS 了。

更多 MongoDB 相关教程见以下内容:
MongoDB 文档、集合、数据库简介 http://www.linuxidc.com/Linux/2016-12/138529.htm
MongoDB 3 分片部署及故障模拟验证 http://www.linuxidc.com/Linux/2016-12/138529.htm
Linux CentOS 6.5 yum 安装 MongoDB http://www.linuxidc.com/Linux/2016-12/137790.htm
CentOS 7 yum 方式快速安装 MongoDB http://www.linuxidc.com/Linux/2016-11/137679.htm
MongoDB 的查询操作 http://www.linuxidc.com/Linux/2016-10/136581.htm
MongoDB 权威指南第 2 版 PDF 完整带书签目录 下载见 http://www.linuxidc.com/Linux/2016-12/138253.htm
MongoDB 的详细介绍:请点这里
MongoDB 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-06/145070.htm






