1、安装环境:
Windows 10
MongoDB-4.0.11(送你去下载)
2、MongoDB安装操作
解压MongoDBL压缩版:
2.1、配置环境变量:
变量名:MongoDB
变量值:D:\spaces\mongodb_4.0.11
并在path中加入:
%MongoDB%\bin;
2.2、创建依赖文件:
MongoDB需要自己创建存放数据的文件夹和配置文件,so自行创建辽
2.3、mongo.conf文件配置:
# 数据库路径
dbpath=D:\spaces\mongodb_4.0.11\data\db
# 日志输出文件路径
logpath=D:\spaces\mongodb_4.0.11\data\log\mongo.log
# 错误日志采用追加模式
logappend=true
# 启用日志文件(默认启用)
journal=true
# 这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
quiet=true
# 端口号(默认为27017)
port=27017
注:这个是我自己习惯用的,有其他需求可参照官方介绍进行修改--》》官方文档
2.4、初始化MongoDB:
以管理员权限打开cmd命令行,配置MongoDB加入到服务列表
mongod --config D:\spaces\mongodb_4.0.11\mongo.conf --install --serviceName "MongoDB"
指定写入数据文件的目录,不要关闭命令行页面
1、
mongod.exe --dbpath "D:\spaces\mongodb_4.0.11\data\db"
2、再启动一个命令行,输入mongo.exe,浏览器访问127.0.0.1:27017。
上面的命令可以简化为如下命令:
mongod.exe --logpath "D:\spaces\mongodb_4.0.11\data\log\mongo.log" --logappend --dbpath "D:\spaces\mongodb_4.0.11\data\db" --directoryperdb --serviceName MongoDB --install
2.5、启动MongoDB服务
启动服务命令:net start mongodb
关闭服务命令:stop start mongodb
注:记录一下所踩的坑:
1.提示:exception in initAndListen: 12596 old lock file, terminating
解决办法 : 删除data\db目录下的.lock文件
2.提示:Error parsing YAML config file: yaml-cpp: error at line 2, column 13: illegal map value
try 'mongod.exe --help' for more information
解决办法:将tab占位符改为空格
3、创建所有数据库管理员用户:
注:MongoDB 默认安装完成以后,只允许本地连接,同时不需要使用任何账号密码就可以直接连接MongoDB。因此除非你在admin数据库中使用db.createUser()命令添加了管理员帐号,且使用–auth参数启动mongod,否则在数据库中任何人都可以无需认证执行所有命令。
3.1、输入命令mongo.exe,进入mongodb命令界面:
3.2、进入admin数据库:
3.3、创建用户角色:
mongodb内置角色:
1. 数据库用户角色:read、readWrite;
2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 备份恢复角色:backup、restore;
5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超级用户角色:root
7. 内部角色:__system
使用命令:db.createUser({user:"自己输",pwd:"自己输",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
3.4、重启mongodb服务,
重新管理员身份打开cmd,执行mongod --dbpath D:\spaces\mongodb_4.0.11\data\db --**auth **(db是安装mongodb创建的数据库文件夹)
3.5、验证用户添加是否成功:
结果为1,说明成功。
3.6、使用Robomongo工具连接:
可以看到刚才创建的管理员用户testAdmin(角色userAdminAnyDatabase),有权限访问所有数据库。
4、对单个数据库设置用户、密码
4.1、同上创建test1的方式,创建数据库test2
运行命令: db.createUser({user:'test2admin',pwd:'123456',roles:[{role:'readWrite',db:'test2'}]})
4.2、使用Robomongo工具连接:
用户test2admin只能看到数据库test2。