MongoDB authentication failed

mongodb用户权限管理最全攻略:用户的创建、查看、删除与修改,mongodb入坑之旅
https://segmentfault.com/a/1190000015603831

0.随笔摘要:

MongoDB 安装配置
MongoDB 权限控制
MongoDB 注意事项 authentication failed
1.MongoDB 下载安装配置

    MongoDB官网 https://www.mongodb.com/  下载安装包, 直接next next安装即可,可自行选择安装路径。

在MongoDB安装路劲的bin目录下新建配置文件mongo.config, 比如: D:\programs\mongoDB\bin\mongo.config

mongo.config的内容:

dbpath=D:\data\db        #数据库存储位置 自己去新建对应的目录
    logpath=D:\data\logs\mongo.log  #数据库日志位置 自己去新建对应的目录和文件
    auth=false            #授权登入启禁用

以配置文件启动MongoDB服务;管理员身份进入cmd窗口A,cd 进入安装路径,比如cd D:\programs\mongoDB\bin

进入bin目录后,执行如下服务启动命令(注意你自建的配置文件路径):

1 D:\programs\mongoDB\bin>mongod --config D:\programs\mongoDB\bin\mongo.config --install --serviceName “MongoDB”
  如果以前安装和配置过MongoDB,但卸载了MongoDB,可是MongoDB服务还未删除,管理员身份执行命令进行删除服务:

1 D:\programs\mongoDB\bin>SC DELETE MongoDB

2.MongoDB 权限控制(用户密码) 此操作【一定】要在【命令行窗口】里进行创建用户!!

服务启动后,再多开一个cmd窗口B,cd 进入安装路径,比如cd D:\programs\mongoDB\bin,执行命令,创建授权root用户:

复制代码
D:\programs\mongoDB\bin>mongo
MongoDB shell version v3.4.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.3

db
test
use admin
switched to db admin  
db.createUser(
{
user: “root”,
pwd: “rootpwd”,
roles: [ {role:“root”, db:“admin”} ]
}
)
复制代码

mongo的权限控制,用户密码配置可参考http://www.2cto.com/database/201608/533458.html ,这一块完成后,

请在当前cmd窗口B,Ctrl+C 退出连接

请在之前cmd窗口A,Ctrl+C 关闭MongoDB 服务,关闭窗口A

修改和保存配置文件mongo.config:

dbpath=D:\data\db        #数据库存储位置
    logpath=D:\data\logs\mongo.log  #数据库日志位置
    auth=true            #改授权登入启用

打开windows服务,Ctrl+Shift+ESC, 找到MongoDB服务,右键选择开启服务,那么项目或第三方工具连接MongoDB就必须使用用户名密码了!!!!

3.MongoDB 注意事项 authentication failed

【一定】要在【命令行窗口】里进行创建用户!!!,项目或第三方工具才能使用用户名密码连接MongoDB指定的数据库!!!

使用root权限在指定业务库,创建用户过程:

复制代码
D:\programs\mongoDB\bin>mongo
MongoDB shell version v3.4.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.3

use admin #1数据库切换至admin管理库
switched to db admin
db.auth(‘root’, ‘rootpwd’) #2验证root用户
1  
use mydb #3切换至业务库 在该库创建访问该库的用户
db.createUser( #4 创建用户
{
user: “mydbDBA”,
pwd: “123321”,
roles: [ {role:“dbOwner”, db:“mydb”} ]
}
)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当出现错误消息"Authentication failed"时,这意味着MongoDB身份验证失败。这可能是由于以下几个原因导致的: 1. 提供的用户名或密码不正确。确保在连接字符串或配置文件中正确设置了用户名和密码。例如,可以使用以下格式来指定用户名和密码:mongodb://user:password@host:port/dbname?authSource=admin。 2. 认证的数据库不正确。请确保指定了正确的认证数据库。通常情况下,认证数据库是admin。如果在连接字符串中没有指定authSource,则默认为admin。 3. MongoDB服务器上未启用身份验证。请检查MongoDB服务器的配置,确保已启用身份验证。 如果遇到身份验证失败的问题,可以尝试以下几个解决方法: 1. 检查用户名和密码是否正确,并确保在连接字符串或配置文件中正确设置了它们。 2. 确保指定了正确的认证数据库,通常为admin。如果未指定authSource,请在连接字符串中明确指定。 3. 检查MongoDB服务器的身份验证设置,并确保已正确配置。 4. 如果使用的是特定的MongoDB驱动程序或框架(例如Laravel),请确保已正确安装和配置相关的扩展或包。例如,对于Laravel中的MongoDB,可以使用"composer require jenssegers/mongodb"命令来安装相关的扩展包,并根据版本和配置进行适当的调整。 总结起来,当出现"Authentication failed"错误时,需要检查用户名、密码、认证数据库和MongoDB服务器的身份验证设置,以确保它们正确配置和匹配。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值