zoukankan      html  css  js  c++  java
  • linux运维、架构之路-MongoDB单机部署

    一、MongoDB介绍

    MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

    MongoDB 是一个介于关系型数据库和非关系型数据库之间的产品,是非关系数据库当中功能最丰富,最像关系型的数据库。

    MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

    二、主要特点

    • MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。
    • 可以在MongoDB记录中设置任何属性的索引 (如:FirstName="Sameer",Address="8 Gandhi Road")来实现更快的排序。
    • 可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。
    • 如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。
    • Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
    • MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。
    • Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。
    • Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。
    • Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。
    • GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。
    • MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。
    • MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
    • MongoDB安装简单

    三、MongoDB部署

    1、安装所需依赖

    yum install libcurl openssl

    2、下载源码包

    下载地址: https://www.mongodb.com/download-center?jmp=nav#community

    3、创建所需目录

    mkdir -p /app/mongodb4.0/{install,logs,conf,data}

    4、上传解压 mongodb-linux-x86_64-4.0.0.tgz 至 /app/mongodb4.0/install目录下

    tar xf mongodb-linux-x86_64-4.0.0.tgz -C /app/mongodb4.0/install/

    5、创建MongoDB配置文件、日志文件

    touch /app/mongodb4.0/logs/mongodb.log
    touch /app/mongodb4.0/conf/mongodb.conf

    6、编辑mongodb.conf

    port=27017
    #以后台方式运行
    fork=true
    #数据库日志存放目录
    logpath=/app/mongodb4.0/logs/mongodb.log
    #以追加的方式记录日志
    #logappen=true
    #数据库数据存放目录
    dbpath=/app/mongodb4.0/data
    #开启用户认证true
    auth=false
    #过滤一些无用的日志信息,若需要调试使用请设置为false
    quiet=true
    #auth=true
    ##mongodb所绑定的ip地址
    bind_ip = 0.0.0.0

    7、启动MongoDB

    /app/mongodb4.0/install/bin/mongod -f /app/mongodb4.0/conf/mongodb.conf

    8、配置MongoDB

    ①进入MongoDB命令模式

    /app/mongodb4.0/install/bin/mongo 127.0.0.1:27017

    ②创建数据库

    use demon

    ③创建用户管理员

    在admin数据库中添加超级角色的用户

    use admin
    db.createUser({user:"admin",pwd:"admin",roles:[{role:"root",db:"admin"}]});

    创建普通用户及数据库

    use demon
    db.createUser({user:"demon",pwd:"demon",roles:[{role:"readWrite",db:"demon"}]});

    权限说明

    • 数据库用户角色:read、readWrite;
    • 数据库管理角色:dbAdmin、dbOwner、userAdmin;
    • 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
    • 备份恢复角色:backup、restore;
    • 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
    • 超级用户角色:root 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
    • 内部角色:__system

    9、停止MongoDB

    /app/mongodb4.0/install/bin/mongod -f /app/mongodb4.0/conf/mongodb.conf -shutdown

    10、编辑mongodb.conf   auth=true

    /app/mongodb4.0/install/bin/mongod -f /app/mongodb4.0/conf/mongodb.conf

    11、使用上面创建的用户登录MongoDB

    /app/mongodb4.0/install/bin/mongo --port 27017 -u "demon" -p "demon" --authenticationDatabase "demon"

    四、开发MongoDB启动脚本

    1、编写脚本

    #!/bin/bash
    # chkconfig: - 98 21
    Mongod_Path="/app/mongodb4.0/install/bin/mongod"
    Mongod_Conf="/app/mongodb4.0/conf/mongodb.conf"
    
    usage() {
        echo "usage: $0 [start|stop|restart]"
    }
    
    
    start_Mongod() {
       $Mongod_Path -f $Mongod_Conf
       echo "Mongodb is starting"
    }
    
    stop_Mongod() {
       $Mongod_Path -f $Mongod_Conf --shutdown
       echo "Mongodb is stopped"
    }
    
    
    main() {
    case $1 in
        start)
             start_Mongod;;
        stop)
             stop_Mongod;;
        restart)
             stop_Mongod && start_Mongod;;
        *)
             usage;
    esac
    }
    main $1

    2、授予脚本可执行权限

    chmod +x /etc/init.d/mongod
    chkconfig --add mongod

    3、启动、停止、重新MongoDB服务

    /etc/init.d/mongod start
    /etc/init.d/mongod stop
    /etc/init.d/mongod restart

    五、MongoDB数据库的相关操作


    > show dbs;                        #查看当前实例下的数据库
    > show databases;             #兼容关系型数据库MySQL命令
    > use local;                         #切换数据库local
    > show collections;            #查看数据库local的集合
    > show tables;                    #兼容关系型数据库MySQL命令
    常用的操作如下:

    回到顶部

  • 相关阅读:
    解析xml
    序列化为xml
    aspose.cells excel表格导入导出
    文件下载
    jquery拼接和拆分字符串,并加入特殊符号
    VC Windows系统服务创建代码
    Lua 基础知识-面向对象
    iOS 网络与多线程--8.百度地图的使用(调用系统浏览器)
    iOS 网络与多线程--7.Performselector消息处理方法
    iOS 网络与多线程--6.下载并保存网络图片
  • 原文地址:https://www.cnblogs.com/yanxinjiang/p/11009513.html
Copyright © 2011-2022 走看看