1.下载和安装
直接进入MongoDB官网 https://www.mongodb.com/,点击下图处进入下载页面:
选择平台为Windwos
,包为msi
,直接点击下载(若没有对应的选项则是网络不好,网页没有加载完全,尝试挂加速器):
打开安装包后选择custom
自定义安装目录,如果之前安装过会多一个remove
按钮,先移除之前安装的版本:
为了避免后续安装和配置出错,建议安装前先完全卸载之前的MongoDB服务,先在服务里面查看是否有MongoDB相关的服务,有的话则以管理员身份
运行cmd
,然后执行sc delete MongoDB(以实际服务名称为准)
删除服务,并删除之前的MongoDB目录文件即可。
选择安装目录后一路next
,到了下图处左下角的钩建议取消掉可视化工具的下载,因为下载会很慢:
中途有提示框的话请认真翻译阅读提示内容,选择不要关机No
,和忽略Ignore
。
2.简单启动和使用
下载完成后可以看到如下的目录结构,data
是存放数据的目录,log
是存放日志的目录,bin
里面则是可执行程序:
接下来管理员运行cmd
,并进入上述bin
目录下,执行如下命令启动MongoDB服务端,启动后该命令行窗口必须一直开着,后续设置密码后在配置到Windows服务中:
mongod.exe --dbpath "D:\Program Files\MongoDB\4.4\data"
然后再打开一个新的cmd
窗口在bin
目录下执行如下命令启动客户端:
mongo
客户端连接上服务器中,依次执行下图中的命令即可使用MongoDB,进行查看数据库,创建数据库,创建文档(集合)和插入数据等操作:
3.密码设置
在默认情况下,mongod是监听在127.0.0.1之上的,任何客户端都可以直接连接27017,且没有认证。好处是用户可以即可上手,不用担心一开始就有很多复杂的配置,降低了门槛;但是如果是公网服务器搭建MongoDB,那么所有人都可以直接访问并修改数据库数据了。并且默认情况下,mongod也是没有管理员账户的。
因此除非你在默认的admin
数据库中使用db.createUser()
命令添加了管理员帐号,且使用–auth
参数启动mongod,否则在数据库中任何人都可以无需认证执行所有命令。
首先看看mongodb内置角色:
- 数据库用户角色:read、readWrite;
- 数据库管理角色:dbAdmin、dbOwner、userAdmin;
- 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
- 备份恢复角色:backup、restore;
- 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
- 超级用户角色:root
- 内部角色:__system
设置密码,先进入admin
数据库,然后执行下述命令,可根据需求灵活配置账号、密码、角色以及角色所属库,这里设置了一个有权限访问所有数据库的admin
用户,一个只有test
库读写权限的hezebin
用户,和一个超级管理员root
:
db.createUser({user:"admin",pwd:"admin",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
db.createUser({user:'hezebin',pwd:'123456',roles:[{role:'readWrite',db:'test'}]})
db.createUser({user:'root',pwd:'root',roles:[{role:'root',db:'admin'}]})
配置好用户后先关闭和删除之前启动的mongod服务器命令行(删除方法与上述相同),因为这个服务启动是没有开启认证的;然后执行如下命令以开启认证的方式安装MongoDB服务,其中dbpath
和logpath
即指定为上述中的数据库目录和日志文件即可:
mongod.exe --dbpath "D:\Program Files\MongoDB\4.4\data" --logpath "D:\Program Files\MongoDB\4.4\log\mongod.log" --auth --install
安装完成后即可在服务中看到多了一个MongoDB的服务:
是否成功安装新服务成功是可以通过查看服务的属性看到的:
然后启动服务:net start MongoDB
:(关闭服务命令为:net stop MongoDB
)
4.登录验证
密码设置好后再次启动客户端后需要认证才能操作对应权限下的数据库了,认证方式为先切换到admin
:
use admin
然后通过账号密码登录:
db.auth("hezebin","123456")
如下图所示不同用户只可见其有对应权限的数据库:
另一种更为方便和快捷的登录命令为:
mongo -u admin -p admin
5.工具下载
如果需要使用数据库备份和导入等命令和功能,需要额外下载对应的工具:https://www.mongodb.com/try/download/database-tools
解压后,放到bin
目录下即可: