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命令
常用的操作如下:

 

回到顶部

posted @ 2019-06-12 14:34  闫新江  阅读(789)  评论(0编辑  收藏  举报