安装包下载
官网下载地址:https://www.mongodb.com/try/download/community
百度云下载:链接:https://pan.baidu.com/s/1ZyfqhPtGIxhPy_4Q2IokPA
提取码:v515
软件安装
勾选接受同意许可
选择自定义模式
选择安装路径
安装成功界面
配置启动
在安装主目录下创建data文件夹
,并在data文件夹下再创建db文件夹
和log文件夹
。db文件夹用于存储数据库数据,log文件夹用于存储数据库日志。
将Mongo安装目录的bin路径
(例如我的:E:\chDevTools\MongoDB\Server\3.2\bin)添加到环境变量path
中。这样以后执行一些mongo相关的命令可以不用进入到mongo安装路径的bin目录。
有两种启动方式,以命令行的方式启动
和以服务的方式启动
。
命令行方式启动
# 指定数据存储的位置
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启动成功。
服务的方式启动
在Mongo安装的主目录下创建文件mongod.config
,文件内容如下:
在命令行输入以下命令,使用–install选项将Mongo添加为Windows的服务。
mongod --config “E:\chDevTools\MongoDB\Server\3.2\mongod.config” --install -serviceName "MongoDB"
按住Win键和R键
,输入services.msc
,打开服务,可以看到MongoDB服务已经添加成功,但是此时MongoDB服务还未启动(当然也可以在此右键手动启动和停止)。
在命令行输入 net start MongoDB
启动服务。启动后在服务列表可以看到启动状态。
顺带介绍下停止服务 net stop MongoDB
和删除服务 sc delete MongoDB
的命令。
设置用户和密码
在默认情况下,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数据库,使用以下命令创建管理账号。
db.createUser({user:"admin",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
停止服务,将之前的服务删除,但是原有的data\db目录下的数据不要删除。然后再添加 --auth 参数重新添加服务。最后重新启动服务。
mongod --config “E:\chDevTools\MongoDB\Server\3.2\mongod.config” --auth --install -serviceName "MongoDB"
验证,如果不进行db.auth()进行用户验证的话,是执行不了任务命令。
以下演示对单个数据库设置用户名和密码
db.createUser({user:'nobody',pwd:'123456',roles:[{role:'readWrite',db:'nobody'}]})
验证,我们用Mongo可视化工具(Studio 3T For MongoDB
)连接,即可看到不用用户可见的数据库范围。注意连接有用户名和密码的需要填写用户名和密码。