0. 背景
开始学习 MongoDB,本文简单介绍MongoDB和安装过程。
1. MongoDB 简介
MongoDB
MongoDB是一个通用的、基于文档的分布式数据库,它是为现代应用程序开发人员和云时代而构建的。
MongoDB是一个文档型数据库,它将数据存储在类似json的文档中。这是一种处理数据的最自然的方式,比传统的行/列模型的数据库更有表现力和更强大。
特点:
- 数据以JSON方式存储,处理数据最自然,支持数组和嵌套对象。
- 查询也以JSON方式,支持筛选和排序,聚合。
- 完整的支持ACID。
备注:ACID是指 A (Atomicity) 原子性,C (Consistency) 一致性I (Isolation) 独立性,D (Durability) 持久性。
整体特征:中庸 MongoDB 是一个介于关系数据库和非关系数据库(NoSQL)之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
这里提到了 NoSQL ,那么什么是NoSQL?
NoSQL
NoSQL 意即"不仅仅是SQL"。泛指非关系型的数据库。
NoSQL用于超大规模数据的存储。这些类型的数据存储不需要固定的模式,方便于横向扩展。
NoSQL 和 传统的关系型数据的对比 (RDBMS vs NoSQL)
NoSQL | RDBMS (关系型数据库) |
---|---|
不仅仅是SQL | 结构化查询语言(SQL) (SQL) |
最终一致性,而非ACID属性 | 严格的一致性 |
没有声明性查询语言,没有预定义的模式 | 数据操纵语言,数据定义语言 |
键 - 值对存储,列存储,文档存储,图形数据库 | 数据和关系都存储在单独的表中。 |
非结构化和不可预知的数据 | 高度组织化结构化数据 |
CAP定理 | _ |
高性能,高可用性和可伸缩性 | _ |
_ | 基础事务 |
2.安装MongoDB
安装过程分这么几步:
- (1) 找到适合你的二进制包
- (2) 下载二进制包
- (3) 配置环境变量
- (4) 编写配置文件
- (5) 启动
下面分别描述:
2.1 找到适合你的二进制包
MongoDB 提供了社区版 MongoDB Community Server ,你可以免费下载使用。我们浏览 官方下载地址 找到符合你操作系统的版本并下载。
image.png
2.2 下载二进制包
我的是 CentOS 7.0,我这里选择了 压缩包格式 (TGZ),并拷贝到你的机器上。官网也提供了下载的连接地址,你也可以在机器上执行
代码语言:javascript复制wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.5.tgz
下载完成后,解压缩你的文件
代码语言:javascript复制tar -xvzf <tgz file>
解压缩文件后,进入 bin 子目录可以看到一些执行文件,重要的两个:
- mongod 用来启动 MongDB 服务进程
- mongo 打开客户端 shell , 它是一个客户端连接工具。
2.3 配置环境变量
为了省心,把 bin 文件夹路径添加到环境变量 PATH 中,可以简化命令。
打开并编辑你的 /etc/profile 文件, 指定 bin 所在的目录到环境变量配置文件中。示例:
代码语言:javascript复制export MONGO_DB_HOME="/root/mango/mongodb-linux-x86_64-rhel70-4.2.5"
export PATH=$MONGO_DB_HOME/bin:$PATH
2.4 编写配置文件
准备数据库文件的路径 比如我这里创建了一个目录:/root/mango/database
代码语言:javascript复制 mkdir /root/mango/database
在你的 bin 目录下新建一个文件 mongodb.config,编辑内容:
代码语言:javascript复制# 数据库文件位置
dbpath=/root/mango/database
#日志文件存放路径
logpath= /root/mango/logs/mongodb.log
# 追加方式写日志
logappend=true
# 允许外部访问,如设置为127.0.0.1则只能在本机访问
bind_ip = 0.0.0.0
# 可在后台运行
fork=true
2.5 启动
执行 mongod ,带上参数 --config /path/to/your/mongodb.config。示例:
代码语言:javascript复制mongod --config $MONGO_DB_HOME/bin/mongodb.config
默认启动后 在 27017 端口。
2.6 尝试连接
启动完成后,查看进程是否启动
代码语言:javascript复制ps aux |grep mongod
在bin目录下可以看到 MongoDB 常用的命令:
- mongod 用来启动 MongDB 服务进程
- mongo 打开客户端 shell , 它是一个客户端连接工具。
你可以执行 mongo ,连接 shell 到你的服务器上了。
进入 shell 后,可以通过 version() 查看版本号,输入:
代码语言:javascript复制db.version()