1. 1. MongoDB 介绍
  2. 2. MongoDB 应用场景
  3. 3. MongoDB 安装
  • 包含mongod守护程序和关联的配置和init脚本
  • 包含mongos守护程序
  • 包含mongo shell,它是一个连接mongodb的命令行客户端,允许用户直接输入nosql语法管理数据库
  • 包含以下工具的MongoDB:数据导入、导出、备份、恢复等等
  • Centos6 启动
  • Centos7 启动
  • 停止 Mongodb 服务
  • 重启 Mongodb
  • MongoDB 介绍

    MongoDB 是一种 NoSQL 数据库,它在数据存储的形态上和 MySQL 这类关系数据库有本质区别。MongoDB 存储的基本对象是 Document,所以我们把它称为一种文档数据库,而文档的集合则组成了 Collection。与 SQL 的概念类比,Collection 对应于 TableDocument 对应于 RowDocument 使用一种 BSON(Binary JSON)结构来表达,JSON 大家都熟悉,像下面这样。
    ![][1]

    MongoDB 应用场景

    • 游戏场景,使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、更新
    • 物流场景,使用 MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以 MongoDB 内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来
    • 社交场景,使用 MongoDB 存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能
    • 物联网场景,使用 MongoDB 存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析
    • 视频直播,使用 MongoDB 存储用户信息、礼物信息等

    MongoDB 安装

    MongoDB 的安装方式比较简单,由于源码安装比较麻烦,我们的本意只是为了学习 MongoDByum 种傻瓜式安装是为了更方便现在学习,本文以 yum 方式安装。

    工具:

    • VMware版本号:12.0.0

    • CentOS版本:7.0

    : 3.4 版本 MongoDB 不再为 32 位平台(Linux 和 Windows)提供商业支持,本文安装版本为3.4

    查看自己 Linux 版本:

    uname –a

    x86_64 表示 64 位机器
    i686 表示 32 位机器

    • 整个 MongoDB(社区版)包含如下软件

    包含mongod守护程序和关联的配置和init脚本

    mongodb-org-server

    包含mongos守护程序

    mongodb-org-mongos

    包含mongo shell,它是一个连接mongodb的命令行客户端,允许用户直接输入nosql语法管理数据库

    mongodb-org-shell

    包含以下工具的MongoDB:数据导入、导出、备份、恢复等等

    mongodb-org-tools

    
    
     - 创建 yum 源文件
    

    vim /etc/yum.repos.d/mongodb-org-3.4.repo

    
     - 将下面内容复制到源文件中
    

    [mongodb-org-3.4]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc

    
    ![][2]
    
     - 启动 yum 命令开始安装
    

    yum install -y mongodb-org

    
     - 如果使用 `SELinux`,则必须配置 `SELinux`,以允许在基于 `Red Hat Linux` 的系统(Red Hat Enterprise Linux 或 CentOS Linux)上启动 `MongoDB`
    

    vim /etc/selinux/config

    
    将 `SELINUX` 值设置为 `disabled`
    ![][3]
    
     - 启动 Mongodb (Mongodb 服务端的默认连接端口是 `27017`)
    

    Centos6 启动

    $ service mongod start

    Centos7 启动

    $ systemctl start mongod

    
     - 查看是否启动

    netstat -tlnup|grep mongod

     - 查看是否占用 `27017` 端口号
    

    netstat -tlnup|grep 27017

    
     - 其它控制命令
    

    停止 Mongodb 服务

    $ service mongod stop

    重启 Mongodb

    $ service mongod restart

    
     - 设置开机启动
    

    chkconfig mongod on

    
     - 找到 MongoDB 客户端
    

    find / -name mongo

    ![][4]
    
     - 连接客户端
    

    /usr/bin/mongo

    输入测试命令 `show dbs` 查看当前数据库有哪些
    ![][5]
    
     - 停止 MongoDB 服务器
    可以使用 `Ctrl + c` 或者输入 `exit` 退出 `MongoDB` 界面。
    
    `注`:进入 `MongoDB` 界面会出现`警告`

    Server has startup warnings:
    2017-03-30T06:40:26.039+0800 I CONTROL [initandlisten]
    2017-03-30T06:40:26.039+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
    2017-03-30T06:40:26.039+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
    2017-03-30T06:40:26.039+0800 I CONTROL [initandlisten]
    2017-03-30T06:40:26.040+0800 I CONTROL [initandlisten]
    2017-03-30T06:40:26.040+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is ‘always’.
    2017-03-30T06:40:26.040+0800 I CONTROL [initandlisten] ** We suggest setting it to ‘never’
    2017-03-30T06:40:26.040+0800 I CONTROL [initandlisten]
    2017-03-30T06:40:26.040+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is ‘always’.
    2017-03-30T06:40:26.040+0800 I CONTROL [initandlisten] ** We suggest setting it to ‘never’
    2017-03-30T06:40:26.040+0800 I CONTROL [initandlisten]

    这是因为没有配置 `MongoDB` 的`安全功能`,如`授权`和`身份验证`。当然只是为了学习的话,可以忽略它,但是生产环境`必须需要配置`。
    
      [1]: https://ned.oss-cn-beijing.aliyuncs.com/MongoDB_JOSN.png
      [2]: https://ned.oss-cn-beijing.aliyuncs.com/MongoDB_1.png
      [3]: https://ned.oss-cn-beijing.aliyuncs.com/MongoDB_2.png
      [4]: https://ned.oss-cn-beijing.aliyuncs.com/MongoDB_3.png
      [5]: https://ned.oss-cn-beijing.aliyuncs.com/MongoDB_4.png