一、MongoDB 简介:
MongoDB 是由 C++ 语言编写的,是一个开源的,基于分布式的,面向文档存储的非关系型数据库。是非关系型数据库当中功能最丰富、最像关系数据库的。
MongoDB 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
选择 MongoDB 的原因:
- 无数据结构限制
a. 没有表结构的概念,每条记录可以有完全不同的结构。
b. 业务开发方便快捷。
c. Sql 数据库需要事先定义表结构再使用。 - 完全的索引支持
a. Redis 的 key-value
b. Hbase 的单索引,二级索引需要自己实现。
c. MongoDB 的索引包含:单键索引,多键索引,全文索引,地理位置索引 - 方便的冗余与扩展
a. 复制集保证数据安全。
b. 分片扩展数据规模。
二、MongoDB 的安装与配置
2.1 下载安装包
下载地址:http://dl.mongodb.org/dl/win32/x86_64
本文下载的是 mongodb-win32-x86_64-2008plus-ssl-3.6.1.zip
假设将压缩包解压后的文件夹移动到 E:\mongodb\mongo-3.6.1
2.2 创建相关文件
创建数据库路径(data 目录)、日志路径(logs 目录),如下图:
创建并编辑 mongodb 的配置文件配置文件 mongo.conf
:
#数据库路径
dbpath=E:\mongodb\mongo-3.6.1\data
#日志输出文件路径
logpath=E:\mongodb\mongo-3.6.1\logs\mongo.log
#错误日志采用追加模式
logappend=true
#启用日志文件,默认启用
journal=true
#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
quiet=true
#端口号 默认为27017
port=27017
#开启用户认证
#auth=true
将其中的相关路径改为自己安装 mongodb 的路径即可。
2.3 启动 MongoDB
在 E:\mongodb\mongo-3.6.1\bin 目录下,使用 cmd 命令行窗口执行:
mongod –config “E:\mongodb\mongo-3.6.1\mongo.conf”
即可启动 mongoDB
在当前目录下另外启动一个命令行窗口,执行命令 mongo
,如出现下图:
则表示安装成功。图中警告信息是由于用户认证 auth 未开启导致的,之后会对 mongo 的用户,角色,权限做相关介绍。
2.4 将 mongoDB 注册为服务
在 E:\mongodb\mongo-3.6.1\bin 目录下,使用 cmd 命令行窗口执行:
mongod –config “E:\mongodb\mongo-3.6.1\mongo.conf” --install --serviceName "MongoDB"
即可将 mongoDB 注册为服务,服务名为 MongoDB
启动 MongoDB 服务:
net start MongoDB
三、MongoDB 安全
3.1 简述
- 最安全的是物理隔离:不现实
- 网络隔离其次
- 防火墙再其次
- 用户名密码在最后
a. auth 开启
在mongo.conf
中添加auth=true
,重启 MongoDB 服务
b. keyfile 开启
3.2 用户角色
常用角色类型:
Read(可读),readWrite(可读可写),dbAdmin(对数据库的管理权限),dbOwner(前三者的集合体),userAdmin(对用户角色进行管理)
创建用户语法:
db.createUser({
user: “”, #用户名
pwd: “”, #密码
customData: “”, #用户信息,此项可空
roles: [{role: “”, db: “”}] #角色列表信息
})
例:
db.createUser({user:”ldk”, pwd:”ldk”, roles:[{role:”userAdmin”, db:”admin”}, {role:”readWrite”, db:”test”}]})
使用账号密码登陆命令:
mongo -u 用户名 –p 密码
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于