1.官网下载 https://www.mongodb.com/download-center/community
2.安装
选择自定义安装,修改安装路径,然后一路next就行了
不过有个注意事项,到Install MongoDB Compass时,一定要取消勾选 Install MongoDB Compass ,否则要下载Compass工具,会卡在这里,等超久,以前第一次安装时不懂,一路next下去,没取消打勾,装了几个小时(T_T)/~~(T_T)/~~(T_T)/~~
这个Compass工具,可以在安装完后自己另行下载
具体安装步骤如下图:
安装完成目录结构
现在的安装包基本都帮创建了如下几个文件夹:数据库路径(data目录)、日志路径(logs目录)和日志文件(logs/mongo.log文件)
在去服务端查看,发现MongoDB服务已经创建并且正在运行,使用的是bin目录下的 mongod.cfg
尝试链接,到浏览器输入127.0.0.1:27017,出现如下页面,说明mongodb启动运行正常
这是msi文件安装完成步骤,安装完成无需配置,可以直接使用
若是使用zip压缩包,安装完后,需要配置创建数据库路径(data目录)、日志路径(logs目录)和日志文件(logs/mongo.log文件),创建完这些文件后,在创建配置文件mongod.conf
启动命令 :使用--config "配置文件路径启动"
(bin目录下,如已配置环境变量请随意)如 mongod --config "D:\softInstall\MongoDB\mongod.conf"
启动成功不报错后,可去浏览器输入127.0.0.1:27017测试是否链接成功,
也可以新建cmd进入dos测试输入mongo -port 27017 测试是否能链接,如图:
测试链接成功后,安装MongoDB服务
(1)以管理员身份打开cmd
(2)执行安装MongoDB服务:mongod --config "D:\softInstall\MongoDB\mongod.conf" --install --serviceName "MongoDB"
(3)查看服务是否安装成功
(4)启动服务 net start MongoDB
(5)再次测试链接即可
3.创建角色权限
(1)进入cmd链接MongoDB ,mongo -port 27017
(2)创建超级用户:db.createUser({user:"admin",pwd:"admin",roles:[{role:"root",db:"admin"}]})
(3)开启权限认证
这里用的是配置文件,直接在mongod.cfg配置文件中添加
security:
authorization: enabled
配置文件修改后,重启mongodb服务,
注意以上截图重启服务会报1053错误,无法重启服务,因为mongod.cfg有严格的格式多个空格,少个都不行
上面的错误主要是开头空格多了,没对齐,正确如下
(4)重启服务后,登陆并认证权限
返回1说明认证通过
使用test库,创建test库拥有者
使用compass工具登陆输入该用户名密码,发现新创建的这个用户下,只有test库权限
5.mongodb数据库权限角色
数据库用户角色
read: 只读数据权限
readWrite:学些数据权限
数据库管理角色
dbAdmin:数据库管理员, 在当前db中执行管理操作的权限
dbOwner: 数据库拥有者,在当前db中执行任意操作
userADmin:数据库用户管理员, 在当前db中管理user的权限
备份和还原角色
backup:备份
restore:还原
跨库角色
readAnyDatabase: 在所有数据库上都有读取数据的权限
readWriteAnyDatabase: 在所有数据库上都有读写数据的权限
userAdminAnyDatabase: 在所有数据库上都有管理user的权限
dbAdminAnyDatabase: 管理所有数据库的权限
集群管理
clusterAdmin: 管理机器的最高权限
clusterManager: 管理和监控集群的权限
clusterMonitor: 监控集群的权限
hostManager: 管理Server
超级权限
root: 超级用户
6.用户创建相关语句
创建用户 db.createUser({user:"username",pwd: "pwd",roles: [ { role: "rolename", db: "dbname" },{ role: "rolename2", db: "dbname2" } ]})
修改密码 db.changeUserPassword('usname','newpwd');
添加角色 db.grantRolesToUser("username", [{ role: "rolename",db:"dbname"}] )
删除权限 db.revokeRolesFromUser("username",[{ role: "rolename",db:"dbname"}])
删除用户 db.dropUser("username")