前言
- 模式自由 :可以把不同结构的文档存储在同一个数据库里
- 面向集合的存储:适合存储 JSON风格文件的形式
- 完整的索引支持:对任何属性可索引
- 复制和高可用性:支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。复制的主要目的是提供冗余及自动故障转移
- 自动分片:支持云级别的伸缩性:自动分片功能支持水平的数据库集群,可动态添加额外的机器
- 丰富的查询:支持丰富的查询表达方式,查询指令使用JSON形式的标记,可轻易查询文档中的内嵌的对象及数组
- 快速就地更新:查询优化器会分析查询表达式,并生成一个高效的查询计划
- 高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)
下载
打开mongodb下载地址后选择Community Server,然后选择Linux下载对应的版本安装包即可,但是下拉列表中有很多Linux安装包,Centos选择带RHEL的安装包,这里选择RHEl 7 Linux 64-bit x64版本的安装包即可
https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.10.tgz
安装
1、切换到usr/local/文件夹下
cd /usr/local/
2、下载MongoDB源码包
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.10.tgz
3、解压文件
tar -xzvf mongodb-linux-x86_64-rhel70-4.0.10.tgz
4、将解压后的文件重命名为mongodb
mv mongodb-linux-x86_64-rhel70-4.0.10 mongodb
5、添加mongodb的环境变量
vi /etc/profile
6、在文件末尾插入如下内容
export MONGODB_HOME=/usr/local/mongodb export PATH=$PATH:$MONGODB_HOME/bin
7、修改保存后要重启系统配置,执行命令如下
source /etc/profile
配置
1、创建数据库文件存放路径
cd /usr/local/mongodb mkdir -p data/db chmod -R 777 data/db
2、创建日志文件
cd /usr/local/mongodb mkdir logs cd logs touch mongodb.log
3、创建启动文件
cd /usr/local/mongodb/bin touch mongodb.conf
4、编辑启动文件
vi mongodb.conf
5、在文件中插入如下内容
# 设置端口号(默认的端口号是 27017) port = 27017 # 设置数据文件的存放目录 dbpath = /usr/local/mongodb/data/db # 设置日志文件的存放目录及其日志文件名 logpath = /usr/local/mongodb/logs/mongodb.log #使用追加的方式写日志 logappend=true # 设置为以守护进程的方式运行,即在后台运行 fork = true #最大同时连接数 maxConns=100 #不启用验证 noauth=true #每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据) journal=true #即使宕机,启动时wiredtiger会先将数据恢复到最近一次的checkpoint点,然后重放后续的journal日志来恢复 #存储引擎有mmapv1、wirtiger、mongorocks storageEngine=wiredTiger #这样就可以外部访问了 bind_ip=0.0.0.0
port=27017 dbpath=/usr/local/mongodb/db logpath=/usr/local/mongodb/log/mongodb.log logappend=true fork=true maxConns=19000 journal=true storageEngine=wiredTiger bind_ip = 0.0.0.0 slowms=1000 # 开启身份认证功能 auth = true
参数解释
**参数解释: ** --dbpath 数据库路径(数据文件) --logpath 日志文件路径 --master 指定为主机器 --slave 指定为从机器 --source 指定主机器的IP地址 --pologSize 指定日志文件大小不超过64M.因为resync是非常操作量大且耗时,最好通过设置一个足够大的oplogSize来避免resync(默认的 oplog大小是空闲磁盘大小的5%)。 --logappend 日志文件末尾添加,即使用追加的方式写日志 --journal 启用日志 --port 启用端口号 --fork 在后台运行 --only 指定只复制哪一个数据库 --slavedelay 指从复制检测的时间间隔 --auth 是否需要验证权限登录(用户名和密码) --syncdelay 数据写入硬盘的时间(秒),0是不等待,直接写入 --notablescan 不允许表扫描 --maxConns 最大的并发连接数,默认2000 --pidfilepath 指定进程文件,不指定则不产生进程文件 --bind_ip 绑定IP,绑定后只能绑定的IP访问服务
启动
切换到bin目录下
cd /usr/local/mongodb/bin
启动数据库
./mongod --config mongodb.conf
访问数据库
mongo