MongoDB 3.4 远程连接认证失败
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 的详细介绍:请点这里
MongoDB 的下载地址:请点这里
相关推荐
lbyd0 2020-11-17
BigYellow 2020-11-16
sushuanglei 2020-11-12
我心似明月 2020-11-09
zhushenghan 2020-11-09
sunnnyduan 2020-10-16
不要皱眉 2020-10-14
xiaohai 2020-09-29
songxiugongwang 2020-09-22
萌亖 2020-09-17
LuckyLXG 2020-09-08
sdmzhu 2020-09-01
mkhhxxttxs 2020-09-16
xiaohai 2020-09-16
newcome 2020-09-09
jaylong 2020-08-19
大秦铁骑 2020-08-19
thatway 2020-08-19