01-MongoDB简介

nobility 发布于 2022-11-20 809 次阅读


MongoDB简介

MongoDB是由C++语言编写的,是一个高性能的、无模式的、开源的文档型基于分布式文件存储的数据库,是最像关系型的非关系形数据库

MongoDB特性

  1. 速度快:使用的是内存映射引擎,会将所有的数据文件映射到内存中
  2. 简单:类JSON数据模式简单而强大(BSON,JSON的扩展,二进制JSON)
  3. 扩展性强:将数据存储为单个文档,存储字段不受表头限制,提供可扩展的高性能数据存储解决方案
  4. 功能丰富:支持聚合操作、支持JavaScript脚本、支持简单事务、支持GridFS存放小文件等
  5. 支持多种编程语言:Java、NodeJS、Python、C++、PHP等
  6. 高可用和分布式:复制集和数据分片

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启动方式

  1. 动态参数启动:运行mongod命令时指定一些参数
    • port:指定端口号,默认27017
    • dbpath :指定数据文件目录/var/lib/mongo必须要指定
    • logpath:指定日志文件/var/log/mongodb/mongod.log,若之前日志已存在则会以当前系统时间重新命名一个新的日志文件,而不是覆盖,若想追加写入原来的日志文件使用 logappend参数指定
    • fork:后台运行
  2. 配置文件启动:使用config 参数指定配置文件,也可以使用f参数

安全的关闭方式

  1. 使用mongo命令进入服务,再使用use admin命令先切换到admin库,在执行db.shutdownServer()命令即可关闭
  2. 使用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脚本功能
此作者没有提供个人介绍
最后更新于 2022-11-20