MongoDB简介
MongoDB是由C++语言编写的,是一个高性能的、无模式的、开源的文档型基于分布式文件存储的数据库,是最像关系型的非关系形数据库
MongoDB特性
- 速度快:使用的是内存映射引擎,会将所有的数据文件映射到内存中
- 简单:类JSON数据模式简单而强大(BSON,JSON的扩展,二进制JSON)
- 扩展性强:将数据存储为单个文档,存储字段不受表头限制,提供可扩展的高性能数据存储解决方案
- 功能丰富:支持聚合操作、支持JavaScript脚本、支持简单事务、支持GridFS存放小文件等
- 支持多种编程语言:Java、NodeJS、Python、C++、PHP等
- 高可用和分布式:复制集和数据分片
MongoDB使用场景
- 数据模型容易发生变化变化的系统
- 读写频繁的系统
- 数据量大的系统
- 数据价值比较低,对事务要求不高的系统
MongoDB安装
可从MongoDB官网获取MongoDB所有版本安装包(下载社区版)
wget -P /opt https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.1.tgz #下载安装包
tar -zxvf /opt/mongodb-linux-x86_64-rhel70-4.4.1.tgz -C /opt/ #解压安装包到opt目录下
mv /opt/mongodb-linux-x86_64-rhel70-4.4.1/bin/* /usr/local/bin/ #将命令移动到/usr/local/bin/下
mkdir -p /var/lib/mongo /var/log/mongodb #创建存放数据文件目录和日志文件目录
rm -rf /opt/mongodb-linux-x86_64-rhel70-4.4.1* #可选择删除安装文件
命令 | 描述 |
---|---|
mongod |
服务端 |
mongo |
客户端 |
mongos |
分片路由服务端 |
install_compass |
安装图形化管理工具(可将其删除) |
MongoDB启动方式
- 动态参数启动:运行
mongod
命令时指定一些参数port
:指定端口号,默认27017dbpath
:指定数据文件目录/var/lib/mongo
,必须要指定logpath
:指定日志文件/var/log/mongodb/mongod.log
,若之前日志已存在则会以当前系统时间重新命名一个新的日志文件,而不是覆盖,若想追加写入原来的日志文件使用logappend
参数指定fork
:后台运行
- 配置文件启动:使用
config
参数指定配置文件,也可以使用f
参数
安全的关闭方式
- 使用
mongo
命令进入服务,再使用use admin
命令先切换到admin库,在执行db.shutdownServer()
命令即可关闭 - 使用
mongod
命令,与启动时的参数一样,后面在跟一个--shutdown
参数即可
连接MongoDB
mongo
:启动mongo客户端
--host
:指定连接主机IP--port
:指定连接端口-u
:指定连接用户名-p
:指定连接密码
MongoDB常用配置
配置文件是yaml文件格式,属性与属性值之间使用冒号分隔;使用缩进代表层级关系,缩进不允许使用tab,只能使用空格,空格个数不重要,只要左对齐即可;井号开头是注释
一般配置文件位置设置为/etc/mongo.conf
storage:
dbPath: /var/lib/mongo
journal:
enabled: true
systemLog:
destination: file
path: /var/log/mongodb/mongod.log
logAppend: false
processManagement:
fork: true
net:
port: 27017
bindIp: 127.0.0.1
maxIncomingConnections: 65536
security:
authorization: disabled
javascriptEnabled: false
storage
:存储dbPath
:数据库文件目录journal
:持久性日志,故障时用于数据恢复enabled
:是否开启
systemLog
:日志destination
:日志输出方式,值需要是file
,否则会在控制台输出path
:日志路径logAppend
:是否开启日志追加模式
processManagement
:进程管理fork
: 是否以守护进程方式启动
net
:网路port
:指定端口号bindIp
:绑定网卡IP,多个使用逗号分隔,0.0.0.0表示谁都可以访问maxIncomingConnections
:最大连接数
security
:安全authorization
:是否启动安全认证,使用enabled
开启,disabled
禁用javascriptEnabled
:是否开启JavaScript脚本功能
Comments NOTHING