开始学习 MongoDB,本文简单介绍MongoDB和安装过程。
MongoDB
MongoDB是一个通用的、基于文档的分布式数据库,它是为现代应用程序开发人员和云时代而构建的。
MongoDB是一个文档型数据库,它将数据存储在类似json的文档中。这是一种处理数据的最自然的方式,比传统的行/列模型的数据库更有表现力和更强大。
特点:
备注: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定理 | _ |
高性能,高可用性和可伸缩性 | _ |
_ | 基础事务 |
安装过程分这么几步:
下面分别描述:
MongoDB 提供了社区版 MongoDB Community Server ,你可以免费下载使用。我们浏览 官方下载地址 找到符合你操作系统的版本并下载。
image.png
我的是 CentOS 7.0,我这里选择了 压缩包格式 (TGZ),并拷贝到你的机器上。官网也提供了下载的连接地址,你也可以在机器上执行
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.5.tgz
下载完成后,解压缩你的文件
tar -xvzf <tgz file>
解压缩文件后,进入 bin 子目录可以看到一些执行文件,重要的两个:
为了省心,把 bin 文件夹路径添加到环境变量 PATH 中,可以简化命令。
打开并编辑你的 /etc/profile 文件, 指定 bin 所在的目录到环境变量配置文件中。示例:
export MONGO_DB_HOME="/root/mango/mongodb-linux-x86_64-rhel70-4.2.5"
export PATH=$MONGO_DB_HOME/bin:$PATH
准备数据库文件的路径 比如我这里创建了一个目录:/root/mango/database
mkdir /root/mango/database
在你的 bin 目录下新建一个文件 mongodb.config,编辑内容:
# 数据库文件位置
dbpath=/root/mango/database
#日志文件存放路径
logpath= /root/mango/logs/mongodb.log
# 追加方式写日志
logappend=true
# 允许外部访问,如设置为127.0.0.1则只能在本机访问
bind_ip = 0.0.0.0
# 可在后台运行
fork=true
执行 mongod ,带上参数 --config /path/to/your/mongodb.config。示例:
mongod --config $MONGO_DB_HOME/bin/mongodb.config
默认启动后 在 27017 端口。
启动完成后,查看进程是否启动
ps aux |grep mongod
在bin目录下可以看到 MongoDB 常用的命令:
你可以执行 mongo ,连接 shell 到你的服务器上了。
进入 shell 后,可以通过 version() 查看版本号,输入:
db.version()