Nodejs通过账号密码连接MongoDB数据库

转自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:[email protected]:27017/test‘);
  • 1
  • 2
  • 3

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

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

mongoose.connect(‘mongodb://username:[email protected]:port/database?options...‘);
  • 1

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

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

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

原文地址:https://www.cnblogs.com/anxiaoyu/p/9233306.html

时间: 2024-11-03 01:21:51

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

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

(1)nodejs:注册登录session出错 解决办法: 在app.js 中将var MongoStore =  require(connect-mongo')改为var MongoStore =  require(connect-mongo')(express) 即可: (2)连接Mongodb数据库时Error connecting to database解决方案 这种情况下是自己的mongodb数据库没有装好 解决办法: a.在官网上下载安装数据库 b.在mongodb文件夹里面新建文件

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

这里使用的mongodb的java驱动版本是:3.0.2,文件名mongo-java-driver-3.0.2.jar下载网址(也可以下载其它版本):http://central.maven.org/maven2/org/mongodb/mongo-java-driver/ 也可以查看相关的mongodb的api:http://api.mongodb.com/java/current/index.html package utils; import java.net.UnknownHostExc

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

环境设置: [[email protected] ~]# cat /etc/redhat-release  CentOS release 6.9 (Final) [[email protected] ~]# python -V Python 2.6.6 1.首先确保,Mongodb数据库运行 2.安装pymongo模块 官网:https://pypi.python.org/pypi/pymongo/(按需下载) [[email protected] src]# wget https://pypi

java连接MongoDB数据库

这段时间尝试了一下MongoDB,感觉十分易用,方便,相比关系型的数据库来说优势也很大,于是尝试了下使用java连接MongoDB,并进行了 基本的增删改查操作. 首先先在控制台中连接数据库,查看数据库有几个表. 现在,新建一个maven工程,pom.xml中的依赖如下: <!-- WICKET DEPENDENCIES --> <dependency> <groupId>org.apache.wicket</groupId> <artifactId&

Node.js 连接 MongoDB数据库

安装指令:npm install mongodb var mongodb = require("mongodb");// console.log(mongodb); var MongoClient = mongodb.MongoClient; var CONN_DB_STR = "mongodb://localhost:27017/wh1807"; MongoClient.connect(CONN_DB_STR,(err,db)=>{ if(err) thro

使用Nodejs的mysql模块连接MySql数据库出现以下错误

C:\Users\horn1\Desktop\node.js\39>node express.js { Error: Handshake inactivity timeout at Handshake.<anonymous> (C:\Users\horn1\Desktop\node.js\39\node_modules\mysql\lib\protocol\Protocol.js:164:17) at emitNone (events.js:105:13) at Handshake.em

mongodb replica set 和 nodejs中使用mongoose连接replica

一.mongodb replication 介绍 官网上的第一句话就是Replication is the process of synchronizing data across multiple servers.翻译过来就是replication(复制)是跨多个服务器同步的过程,基本原理就是一个主服务器和很多从服务器通过同步日志的方式来达到数据一致的目的,并且有且只有一个主服务器,在mongodb中也叫主节点(primary node)负责写操作,而从服务器,也叫次要节点(secondary

Python连接mongodb提取部分字段内数据并写入txt文件

部门负责工业领域知识图谱构建,用于工业化与信息化两化融合,听起来好高大上好难,反正目前的我还理解不了那么深,好在有部门经理带领. 想要做专业领域知识图谱首先要有专业领域知识,这些知识从哪来呢?主要来源肯定是从互联网上爬啦! 爬下来一大堆知识直接堆在那肯定不行,还要建立起相互关系,其中重要一项就是文本分类啦!那么怎么分类呢? 还是以后再说吧...因为不管怎么做,首先都要把数据库里自己想要的数据取出来. #coding=utf-8 import sys reload(sys) sys.setdefa

python操作MONGODB数据库,提取部分数据再存储

目标:从一个数据库中提取几个集合中的部分数据,组合起来一共一万条.几个集合,不足一千条数据的集合就全部提取,够一千条的就用一万减去不足一千的,再除以大于一千的集合个数,得到的值即为所需提取文档的个数.从每个集合中提取的数据存放到新的对应集合中,新集合名称为原先集合加"_col". 用到相关技术点: 操作MONGODB: 先通过IP和端口号连接到MONGODB所在的机器,得到一个MONGODB客户端对象,然后认证某个数据库的账号密码连接到该数据库,得到一个该数据库的对象.一个数据库下有很