一、演示环境
- Windows 10
- mongodb-win32-x86_64-2008plus-ssl-3.2.10
- 官网下载地址:https://www.mongodb.com/try/download/community
- 百度云下载地址:链接:https://pan.baidu.com/s/1ZyfqhPtGIxhPy_4Q2IokPA 提取码:v515
3.1 勾选接受同意许可
3.2 选择自定义模式
3.3 选择安装路径
3.4 安装成功界面
4.1 配置
在安装目录下创建
data文件夹
,并在data文件夹下再创建db文件夹
和log文件夹
。db文件夹用于存储数据库数据,log文件夹用于存储数据库日志。
将Mongo安装目录的
bin路径
(例如我的:E:\chDevTools\MongoDB\Server\3.2\bin)添加到环境变量path
中。这样以后执行一些mongo相关的命令可以不用进入到mongo安装路径的bin目录。
4.2 启动
有两种启动方式,以
命令行的方式启动
和以服务的方式启动
。
4.2.1 命令行方式启动
可以通过cmd打开命令窗口,手动输入启动命令;当然,也可以创建一个启动脚本文件(例如
startMongo.bat
),内容为启动命令,这样每次只需要双击脚本文件即可启动mongo服务。
# 指定数据存储的位置
mongod --dbpath E:\chDevTools\MongoDB\Server\3.2\data\db
# 指定数据存储的位置,和日志存储的位置
mongod --dbpath E:\chDevTools\MongoDB\Server\3.2\data\db --logpath E:\chDevTools\MongoDB\Server\3.2\data\log\mongo.log
在浏览器输入 127.0.0.1:27017
进行验证,出现如下提示则启动成功。
或者在命令行执行mongo命令,出现现象则表示Mongo启动成功。
4.2.2 服务的方式启动
在Mongo安装的目录下创建文件mongod.config
,指定数据存储的位置,和日志存储的位置,文件内容如下:
在命令行输入以下命令,使用–install选项将Mongo添加为Windows的服务。
mongod --config “E:\chDevTools\MongoDB\Server\3.2\mongod.config” --install -serviceName "MongoDB"
按住Win键和R键
,输入services.msc
,打开Windows服务列表,可以看到MongoDB服务已经添加成功,但是此时MongoDB服务还未启动(当然也可以在此右键手动启动和停止
)。
在命令行输入 net start MongoDB
启动服务。启动后在服务列表可以看到启动状态。
顺带介绍下停止服务 net stop MongoDB
和删除服务 sc delete MongoDB
的命令。
默认情况下,mongod是监听在127.0.0.1之上的
,任何客户端都可以直接连接27017,且没有认证。如果是在公网服务器搭建MongoDB,那么所有人都可以直接访问并修改数据库数据,这是很危险的。
默认情况下,mongod也是没有管理员账户的
。因此需要在admin数据库中使用db.createUser()
命令添加管理员帐号,且使用--auth
参数启动mongod,否则,任何人都可以在数据库中无需认证执行所有命令。
5.1 mongodb内置角色
- 数据库用户角色:read、readWrite
- 数据库管理角色:dbAdmin、dbOwner、userAdmin
- 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
- 备份恢复角色:backup、restore
- 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
- 超级用户角色:root
- 内部角色:__system
5.2 创建管理员账号
切换到admin数据库,使用以下命令创建管理账号,拥有操作所有数据库权限。
db.createUser({user:"admin",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
5.3 用认证方式启动Mongo服务
停止服务(
net stop 服务名
),将之前的服务删除(sc delete 服务名
),原有的data\db目录下的数据库数据可以不用删除。然后再添加 --auth 参数重新添加服务,最后重新启动服务。
mongod --config “E:\chDevTools\MongoDB\Server\3.2\mongod.config” --auth --install -serviceName "MongoDB"
5.4 验证
使用mongo命令进入mongo命令模式,如果不进行
db.auth("用户名","密码")
进行用户验证的话,是执行不了任务命令的。
5.5 演示对单个数据库创建用户和密码
平常开发中,我们会创建新的数据库,而且需要用新的用户进行操作数据库,那就需要创建新的用户和密码,并设置对此数据库的操作权限。
例如,以下演示创建nobody用户,密码为123456,并设置对nobody数据库用读写的权限。
db.createUser({user:'nobody',pwd:'123456',roles:[{role:'readWrite',db:'nobody'}]})
5.6 可视化工具连接
我们用Mongo可视化工具(例如
Studio 3T For MongoDB
)连接数据库,不同用户名和密码进行登录的时候,其可操作的数据库范围也是不同的(角色设置原因)。
注意,当连接的数据库没有设置用户认证时,连接时不需要填写用户名和密码。