转自https://blog.csdn.net/szu_lzz/article/details/77435804#commentBox
1.创建管理员
首先开启Mongo服务,然后切换admin数据库,一开始是没有这个数据库的。

> use admin
  • 1

2.然后创建用户和密码:

> db.createUser({user:’root’,pwd:’root1234’,roles:[‘root’]})
  • 1

3.创建了管理员账号和密码之后,然后运行Mongo服务的时候加上 –auth参数:

mongod --dbpath "F:mongodb\data\db" --logpath "F:\mongodb\data\log\MongoDB.log" --auth
  • 1

4.这时候如果直接登录数据库,想查看数据,是看不了的,需要用以下命令才能登录成功,如果打印出来一个’1’,说明登录成功:

> db.auth('root','root1234')
1
  • 1
  • 2

到这一步,MongoDB设置账号密码就已经完成了,接下来我需要用Nodejs来连接数据库,我用的是mongoose这个库,他提供了Schema、Model和Document对象,用起来非常方便,但是当我按照官网的例子来写时发现并不成功,如下:

var mongoose=require("mongoose")

mongoose.connect('mongodb://root:root1234@localhost:27017/test');
  • 1
  • 2
  • 3

一直都是报错,说验证失败

后面查了很多资料也没有查到,无奈只有再去研究官方API,在官方API中看到:

mongoose.connect('mongodb://username:password@host:port/database?options...');
  • 1

这是官网连接的例子,后面有一个options参数,我怀疑这里是否需要写一些参数,但是在实际的例子中没有看到后面写任何参数,然后找到官网中对于options的说明,如下:

看到第一个参数authSource,他的描述是:If the database authentication is dependent on
another databaseName.
他的意思是如果数据库认证需要依赖于另外一个数据库名称。我想了想,我们的数据库账号密码不是存储admin数据库嘛,而我们现在需要连接的是另外一个数据库,可以试着加这个参数看看,就是authSource=admin。果然,加上这个参数之后,就可以成功的连接上数据库了,看来还是官网文档靠谱,遇到问题一定要先看看官方文档说明,很多问题有可能就解决了。

以上就是Nodejs连接设置了账号密码的MongoDB数据库的一些坑,在网上没有看到解决方案,希望大家看到了有所启示。

Nodejs通过账号密码连接MongoDB数据库的更多相关文章

  1. NodeJS连接MongoDB数据库时报错

    今天第一次尝试连接MongoDB数据库,具体步骤也很简单. 首先,通过NodeJS运行环境安装MongoDB包,进入要安装的目录,执行语句 npm install mongodb 安装成功后,通过如下 ...

  2. nodejs:注册登录session出错以及连接Mongodb数据库时Error connecting to database解决方案

    (1)nodejs:注册登录session出错 解决办法: 在app.js 中将var MongoStore =  require(connect-mongo')改为var MongoStore =  ...

  3. NodeJS连接MongoDB数据库

    NodeJS连接MongoDB数据库 连接数据库的js文件[我将其命名为(connect.js)] // 引入mongoose第三方模块 const mongoose = require('mongo ...

  4. python连接mongodb数据库

    之前使用过python连接mysql数据库(用到pymysql库),公司也有使用mongodb数据库,所以就整理了一份python连接mongodb数据库的代码出来,以供记录和分享. 首先我们要用到 ...

  5. 使用mongo-java-driver-3.0.2连接MongoDB数据库

    这里使用的mongodb的java驱动版本是:3.0.2,文件名mongo-java-driver-3.0.2.jar  博客本地下载下载网址(也可以下载其它版本):http://central.ma ...

  6. 关于express 连接 mongodb数据库报错

    关于express 连接 mongodb数据库报错 nodejs DeprecationWarning: current URL string parser is deprecated, and wi ...

  7. Python连接MongoDB数据库并执行操作

    原文:https://blog.51cto.com/1767340368/2092813 环境设置: [root@mongodb ~]# cat /etc/redhat-release CentOS ...

  8. 连接 mongodb 数据库 :

    mongodb  数据库: 安装 mongodb  数据库: 安装 mongodb 数据库网址: https://www.mongodb.com/download-center#community 检 ...

  9. java连接mongodb数据库

    最近毕设需要用到这个数据库.然而又不会,没办法,只能上网学习学习. 记录一下java连接mongodb数据库的简单方法.这里只是记录一下学习.熟悉一下CURD方法. 但是毕业用到的是SpringBoo ...

随机推荐

  1. makefile 中添加依赖的库文件

    当库文件中包含多个头文件和c源文件时,需要执行如下步骤: 1) makefile中添加 库文件依赖, -L 后面跟库文件的路径,  -l(小写)后面跟库的名字 2)将库文件中的头文件添加到工程中去,使 ...

  2. Expm 10_1 带负权值边的有向图中的最短路径问题

    [问题描述] 对于一个带负权值边的有向图,实现Bellman-Ford算法,求出从指定顶点s到其余顶点的最短路径,并判断图中是否存在负环. package org.xiu68.exp.exp10; p ...

  3. C# 如何获取自定义的config中节点的值,并修改节点的值

    现定义一个方法 DIYConfigHelper.cs using System; using System.Xml; using System.Configuration; using System. ...

  4. android中的LaunchMode详解----四种加载模式

    Activity有四种加载模式: standard singleTop singleTask singleInstance 配置加载模式的位置在AndroidManifest.xml文件中activi ...

  5. [maven] dependency标签理解

    在maven pom.xml文件中最多的就是dependency标签,我们用maven管理我们项目的依赖.这篇文章简单介绍dependency标签内部各个子标签的意义. 下面是dependency标签 ...

  6. 表单,table的css

    table{table_layout:fixed;border-collapse: collapse;border-spacing: 0}border-collapse: collapse 边框合并在 ...

  7. 【翻译】关于vertical-align所有你需要知道的

    本文是翻译过来的,如果有不对的地方还请指教~,原文链接:Vertical-Align: All You Need To Know 前面一些说明,可以略过不看吧 我经常需要对元素进行垂直方向上的布局. ...

  8. js学习——基础知识

    数据类型 函数.方法 变量作用域 运算符 条件语句 break和continue typeof 错误(异常) 变量提升 严格模式 JSON void(0) JavaScript            ...

  9. IOS 常遇到的报错警告 以及 解决办法

    1.  This application is modifying the autolayout engine from a background thread, which can lead to ...

  10. 使用 Jira 和 Confluence 6 在一起

    这个过程是有趣的过程.请参考 Use Jira applications and Confluence together 文档来找到有关整合的相关内容,能够在后续的开发中更多的节省时间,以及你需要安装 ...