nodejs monk对接mongodb密码全过程

  1. 创建管理用户
use admin
db.createUser({ user: "admin", pwd: "password", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
db.createUser({user: "root",pwd: "password", roles: [ { role: "root", db: "admin" } ]})
  1. 给某库创建用户
use yourdatabase
db.createUser({user: "user",pwd: "password",roles: [ { role: "dbOwner", db: "yourdatabase" } ]})
  1. mongodb配置
##数据文件存放目录
dbpath=/usr/local/mongodb/db
#日志文件存放目录文件
logpath=/usr/local/mongodb/logs/mongodb.log
#服务端口
port=27017
#以守护程序的方式启用,即在后台运行
fork=true
####limits the size of the WiredTiger internal cache 单位:GB,一般可以配置为服务器内存的一半
wiredTigerCacheSizeGB=5
#日志输出方式,使用追加的方式写日志
logappend=true
##日志滚动方式,命令行模式下执行:use admin   db.runCommand( { logRotate : 1 } )  
####Forcing a Log Rotation with SIGUSR1  kill -SIGUSR1 <mongod process id>
logRotate=reopen
#PID File的完整路径,如果没有设置,则没有PID文件
pidfilepath=/usr/local/mongodb/mongo.pid
#关闭http接口,默认关闭27108端口访问
#nohttpinterface=true
#声明这是一个集群的分片,默认端口27018
shardsvr=true
#设置每个数据库将被保存在一个单独的目录
#directoryperdb=true
#开启认证
auth=true
#设置开启简单的rest API,设置后打开28017网页端口
rest=true

主要是配置:auth=true

  1. 重启mongodb
/path/to/mongo 127.0.0.1:27017/admin --eval "db.shutdownServer()"
/path/to/mongod --config /path/to/conf/mongodb.conf
  1. 客户端尝试连接
/path/to/mongo -u user -p password 127.0.0.1:27017/yourdatabase
  1. nodejs monk的代码中的连接方法
const db = require('monk')('user:password@localhost:27017/yourdatabase');
  1. oh shit,按照上面的一步步操作完,突然发现自己设置的密码里带了“@”符号,想该密码怎么办?
use yourdatabase
db.changeUserPassword('user','newpassword');

参考网址:

https://www.cnblogs.com/zilongmao/p/11428864.html

https://blog.csdn.net/qq920447939/article/details/82665883