共计 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 admin
switched 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"
:"userAdminAnyDataba
se
","
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