一、演示环境

  1. Windows 10
  2. mongodb-win32-x86_64-2008plus-ssl-3.2.10
二、安装包下载
  1. 官网下载地址:https://www.mongodb.com/try/download/community
  2. 百度云下载地址:链接:https://pan.baidu.com/s/1ZyfqhPtGIxhPy_4Q2IokPA 提取码:v515
三、软件安装

3.1 勾选接受同意许可
Windows 环境下安装 MongoDB_数据库

3.2 选择自定义模式
Windows 环境下安装 MongoDB_数据库_02
3.3 选择安装路径
Windows 环境下安装 MongoDB_面试_03
3.4 安装成功界面
Windows 环境下安装 MongoDB_mongodb_04

四、配置并启动

4.1 配置

在安装目录下创建data文件夹,并在data文件夹下再创建db文件夹log文件夹。db文件夹用于存储数据库数据,log文件夹用于存储数据库日志。

将Mongo安装目录的bin路径(例如我的:E:\chDevTools\MongoDB\Server\3.2\bin)添加到环境变量path中。这样以后执行一些mongo相关的命令可以不用进入到mongo安装路径的bin目录。

Windows 环境下安装 MongoDB_数据库_05

4.2 启动

有两种启动方式,以命令行的方式启动和以服务的方式启动

4.2.1 命令行方式启动

可以通过cmd打开命令窗口,手动输入启动命令;当然,也可以创建一个启动脚本文件(例如 startMongo.bat),内容为启动命令,这样每次只需要双击脚本文件即可启动mongo服务。

# 指定数据存储的位置
mongod --dbpath E:\chDevTools\MongoDB\Server\3.2\data\db

Windows 环境下安装 MongoDB_mongodb_06

# 指定数据存储的位置,和日志存储的位置
mongod --dbpath E:\chDevTools\MongoDB\Server\3.2\data\db --logpath E:\chDevTools\MongoDB\Server\3.2\data\log\mongo.log

Windows 环境下安装 MongoDB_数据库_07

在浏览器输入 127.0.0.1:27017 进行验证,出现如下提示则启动成功。
Windows 环境下安装 MongoDB_面试_08
或者在命令行执行mongo命令,出现现象则表示Mongo启动成功。
Windows 环境下安装 MongoDB_mongodb_09

4.2.2 服务的方式启动

在Mongo安装的目录下创建文件mongod.config,指定数据存储的位置,和日志存储的位置,文件内容如下:
Windows 环境下安装 MongoDB_数据库_10
Windows 环境下安装 MongoDB_面试_11
在命令行输入以下命令,使用–install选项将Mongo添加为Windows的服务。

mongod --config “E:\chDevTools\MongoDB\Server\3.2\mongod.config” --install -serviceName "MongoDB"

按住Win键和R键,输入services.msc,打开Windows服务列表,可以看到MongoDB服务已经添加成功,但是此时MongoDB服务还未启动(当然也可以在此右键手动启动和停止)。
Windows 环境下安装 MongoDB_数据库_12
Windows 环境下安装 MongoDB_mongodb_13

在命令行输入 net start MongoDB 启动服务。启动后在服务列表可以看到启动状态。
Windows 环境下安装 MongoDB_mongodb_14
Windows 环境下安装 MongoDB_面试_15

顺带介绍下停止服务 net stop MongoDB 和删除服务 sc delete MongoDB 的命令。
Windows 环境下安装 MongoDB_mongodb_16
Windows 环境下安装 MongoDB_面试_17

五、设置用户和密码

默认情况下,mongod是监听在127.0.0.1之上的,任何客户端都可以直接连接27017,且没有认证。如果是在公网服务器搭建MongoDB,那么所有人都可以直接访问并修改数据库数据,这是很危险的。

默认情况下,mongod也是没有管理员账户的。因此需要在admin数据库中使用db.createUser()命令添加管理员帐号,且使用--auth参数启动mongod,否则,任何人都可以在数据库中无需认证执行所有命令。

5.1 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

5.2 创建管理员账号

切换到admin数据库,使用以下命令创建管理账号,拥有操作所有数据库权限。

db.createUser({user:"admin",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})

Windows 环境下安装 MongoDB_数据库_18

5.3 用认证方式启动Mongo服务

停止服务(net stop 服务名),将之前的服务删除(sc delete 服务名),原有的data\db目录下的数据库数据可以不用删除。然后再添加 --auth 参数重新添加服务,最后重新启动服务。

mongod --config “E:\chDevTools\MongoDB\Server\3.2\mongod.config” --auth --install -serviceName "MongoDB"

Windows 环境下安装 MongoDB_数据库_19

5.4 验证

使用mongo命令进入mongo命令模式,如果不进行db.auth("用户名","密码")进行用户验证的话,是执行不了任务命令的。

Windows 环境下安装 MongoDB_mongodb_20

5.5 演示对单个数据库创建用户和密码

平常开发中,我们会创建新的数据库,而且需要用新的用户进行操作数据库,那就需要创建新的用户和密码,并设置对此数据库的操作权限。
例如,以下演示创建nobody用户,密码为123456,并设置对nobody数据库用读写的权限。

db.createUser({user:'nobody',pwd:'123456',roles:[{role:'readWrite',db:'nobody'}]})

Windows 环境下安装 MongoDB_数据库_21

5.6 可视化工具连接

我们用Mongo可视化工具(例如 Studio 3T For MongoDB)连接数据库,不同用户名和密码进行登录的时候,其可操作的数据库范围也是不同的(角色设置原因)。

注意,当连接的数据库没有设置用户认证时,连接时不需要填写用户名和密码。

Windows 环境下安装 MongoDB_面试_22
Windows 环境下安装 MongoDB_面试_23
Windows 环境下安装 MongoDB_mongodb_24