vue+mongodb_mongodb开启auth认证

vue+mongodb_mongodb开启auth认证刚刚安装完mongodb并且让这个mongodb安装成系统服务,然后给启动啦,以为自己这就可以像MySQL那样;安装好之后,配合可视化工具NavicatforMySQL简单的就跑起来了,但是呢,并不是这个样子。出bug啦,我暂且记录一下,正在找解决之法。UnabletofetchCollectionstatsInvalidcredentialsfordataba

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

刚刚安装完mongo db 并且让这个mongo db安装成系统服务,然后给启动啦,以为自己这就可以像MySQL那样;安装好之后,配合可视化工具Navicat for MySQL简单的就跑起来了,
但是呢,并不是这个样子。出bug啦,我暂且记录一下,正在找解决之法。

Unable to fetch Collection stats
Invalid credentials for database 'lxkdb'.
Type: MongoDB.Driver.MongoAuthenticationException
Stack:    在 MongoDB.Driver.Internal.MongoConnection.Authenticate(String databaseName, MongoCredentials credentials)
   在 MongoDB.Driver.Internal.MongoConnection.CheckAuthentication(MongoDatabase database)
   在 MongoDB.Driver.MongoServerInstance.AcquireConnection(MongoDatabase database)
   在 MongoDB.Driver.MongoServer.AcquireConnection(MongoDatabase database, Boolean slaveOk)
   在 MongoDB.Driver.MongoCursorEnumerator`1.AcquireConnection()
   在 MongoDB.Driver.MongoCursorEnumerator`1.GetFirst()
   在 MongoDB.Driver.MongoCursorEnumerator`1.MoveNext()
   在 MongoDB.Driver.MongoDatabase.GetCollectionNames()
   在 MangoUI.MCollections.GetAll(String db)
   在 MangoUI.MCollections.GetIV(String db)
   在 MangoUI.ComDBOverview.RenderMe()
Command 'authenticate' failed: auth failed (response: { "ok" : 0.0, "errmsg" : "auth failed", "code" : 18, "codeName" : "AuthenticationFailed" })
Type: MongoDB.Driver.MongoCommandException
Stack:    在 MongoDB.Driver.Internal.MongoConnection.RunCommand(String collectionName, QueryFlags queryFlags, CommandDocument command)
   在 MongoDB.Driver.Internal.MongoConnection.Authenticate(String databaseName, MongoCredentials credentials)
Inputs:: 
Command:  authenticate
Ok:       False
ErrorMsg: auth failed
Request:  { "authenticate" : 1, "user" : "root", "nonce" : "e223b8165fde3c14", "key" : "59735f1ed37becab745a07df94c1512b" }
Response: { "ok" : 0.0, "errmsg" : "auth failed", "code" : 18, "codeName" : "AuthenticationFailed" }

这个bug是这么出现的:

启动完MongoDB服务后,cmd命令下进入bin目录下(即MongoDB的安装目录的bin下),执行mongo.exe;进入到mongo的命令行模式。
 vue+mongodb_mongodb开启auth认证

命令:use admin  
注释:MongoDB安装好以后由默认的admin表和local表;其中admin存放的是用户信息

命令:db.createUser({ user: “root”,pwd: “root”,customData:{name:”root”},roles:[{ role: “userAdminAnyDatabase”,db: “admin” }]})
注释:创建一个用户名和密码为root的管理员

创建完后登陆
db.auth(‘root’,’root’)
show collections
vue+mongodb_mongodb开启auth认证

1、切换/创建数据库
use yourDB;  当创建一个集合(table)的时候会自动创建当前数据库,这我看完就直接整个use lxkdb 然后接着就在这数据库里面执行下面那行命令。
2、添加
db.users.save({name: ‘zhangsan’, age: 25, sex: true});
添加的数据的数据列,没有固定,根据添加的数据为准

如上,我就认为,现在数据库有了,账号密码也有了,那么我是不是可以直接在可视化客户端登录呢,然后我本地有mongoVUE这工具,然后就如下整起来。

vue+mongodb_mongodb开启auth认证奥,数据库刚刚是有个默认的数据库叫test,账号密码都是test,我就测试的连了一下。

vue+mongodb_mongodb开启auth认证测试连接是OK的啦。

vue+mongodb_mongodb开启auth认证

然后就出现异常啦。

vue+mongodb_mongodb开启auth认证

然后我又现场又测试了下,又有如下的bug图,

vue+mongodb_mongodb开启auth认证

就是刚刚注册的root用户测试连接是OK的,但是当打开的时候,就bug啦。

vue+mongodb_mongodb开启auth认证

Error encountered
Invalid credentials for database 'admin'.
Type: MongoDB.Driver.MongoAuthenticationException
Stack:    在 MangoUI.ComServerView.RefreshCurrentOps(MMongo mo, TimeSpan& data, TimeSpan& gui, Boolean throwEx)
   在 MangoUI.ComServerView.RenderMe()
Command 'authenticate' failed: auth failed (response: { "ok" : 0.0, "errmsg" : "auth failed", "code" : 18, "codeName" : "AuthenticationFailed" })
Type: MongoDB.Driver.MongoCommandException
Stack:    在 MongoDB.Driver.Internal.MongoConnection.RunCommand(String collectionName, QueryFlags queryFlags, CommandDocument command)
   在 MongoDB.Driver.Internal.MongoConnection.Authenticate(String databaseName, MongoCredentials credentials)
Inputs:: 
Command:  authenticate
Ok:       False
ErrorMsg: auth failed
Request:  { "authenticate" : 1, "user" : "root", "nonce" : "48caca9848431a7b", "key" : "bcb3d50b9ead4d515cf04a01619be5ea" }
Response: { "ok" : 0.0, "errmsg" : "auth failed", "code" : 18, "codeName" : "AuthenticationFailed" }

看异常的内容,应该是权限认证问题惹的祸。

恕在下愚笨,搞了很久也没整明白为什么这个mongoVUE就是报错,我看我们项目用的mongo是2.2.2

我这个用的是3.4.而,mongoVUE的版本是1.5.3.

我是真无奈啦。

vue+mongodb_mongodb开启auth认证vue+mongodb_mongodb开启auth认证

最后的测试结果是这样的:

错的不是这个程序,或者步骤。是这个mongoVUE的版本太低了

所以。你换个可视化工具。就可以了。

这个工具的网址,算是个开源的项目吧。
http://blog.robomongo.org/robomongo-0-9-0-final/
我下载的到某度云盘的分享
链接:http://pan.baidu.com/s/1bp8ALDP 密码:iaie

下面是安装完之后,正确的执行步骤,创建管理账户用户和普通用户的步骤,

Create amdin user in mongodb shell and exit.创建管理账户,然后退出。

use admin
db.createUser(
  {
    user: "admin",
    pwd: "password",
    roles: [ { role: "root", db: "admin" } ]
  }
);
exit;

上面的重点就是那个role,选的root,你要是选其他的,估计就不好确定安全不啦。

Shell back into mongodb with the above admin user,用上面创建的管理账户登录,

mongo --port 27017 -u admin -p password --authenticationDatabase admin

Create user for a database called test, with read and write access to test创建个普通的账户,权限是可读可写。

use test
db.createUser(
    {
      user: "tester",
      pwd: "password",
      roles: [
         { role: "readWrite", db: "test" }
      ]
    }
);

Shell into mongodb with the test user,用普通账户登录。

mongo -u tester -p --authenticationDatabase test

估计这么着就OK了。

因为这篇,的错误太多了我就在下一篇,再示范一遍正确的姿势。从头到尾。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/171624.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • html网站怎么注入_跨站脚本攻击原理

    html网站怎么注入_跨站脚本攻击原理跨站脚本攻击(XSS)是一种客户端代码注入攻击。攻击者通过在合法的网页中注入恶意代码,达到在受害者的浏览器中执行恶意代码的目的。当受害者访问执行恶意代码的网页时,攻击就开始了。这些网页成为了将恶意代码发送到用户浏览器的工具。通常受到跨站脚本攻击的网页包括论坛、留言板以及可以评论的网页。如果网页将用户的原始输入作为网页内容,那么它很容易受到XSS攻击,因为这类用户输入一定会被受害者的浏览器解析。…

    2025年6月27日
    3
  • 图片搜索引擎大合集

    图片搜索引擎大合集转自:bbs.service.alibaba.com/bbs/read.php?tid=2768相似图片搜索网站(以图搜图)如何凭着一张现有图片找出它的原始图片,或者是凭着一张小的缩略图找出原始大图?下面的搜索引擎可以帮你实现、以图找图、以图搜图。  以图搜图是颠覆性的搜索方式,基于图片的搜索模式自09年以来在全球各大权威评选中,都被公认为未来几年互联网最有前

    2025年10月19日
    3
  • 基于Vue+springboot+websocket实现的简短仿微信web聊天室(私聊和群聊功能)(可在线预览)[通俗易懂]

    基于Vue+springboot+websocket实现的简短仿微信web聊天室(私聊和群聊功能)(可在线预览)[通俗易懂]基于Vue+springboot+websocket实现的简短仿微信web聊天室(私聊和群聊功能)(www.tcefrep.site聊天室模块项目已经上线,可在线预览)

    2022年6月22日
    30
  • es6模板字符串_es6模板差值

    es6模板字符串_es6模板差值ES6模板字符串

    2022年8月21日
    8
  • ffmpeg解析MP4封装的avc1编码问题「建议收藏」

    ffmpeg解析MP4封装的avc1编码问题「建议收藏」0、问题  遇到的问题:使用ffmpeg直接读取avc1编码的mp4视频,将读取到的帧写下来(H264码流),播放失败。  原因:ffmpeg解码获取的AVPacket只包含视频压缩数据,并没有包含相关的解码信息(比如:h264的sps,pps头信息),这些解码信息包括编码的profile,level,图像的宽和高,deblock滤波器等。没有这些编码头信息解码器就不能进行解码。1、mp4…

    2022年10月17日
    2
  • JVM进阶(十一):JAVA G1收集器

    JVM进阶(十一):JAVA G1收集器JVM进阶(十一)——JAVAG1收集器  在前两篇博文中讲解了新生代和年老代的收集器,在本篇博文中介绍一个收集范围涵盖整个堆的收集器——G1收集器。先讲讲G1收集器的特点,他也是个多线程的收集器,能够充分利用多个CPU进行工作,收集方式也与CMS收集器类似,因此不会有太久的停顿。  虽然回收的范围是整个堆,但还是有分代回收的回收方式。在年轻代依然采用复制算法;年老代也同样采用“标记-清除

    2022年6月13日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号