前言

  最近的项目中需要用到MongoDB,所这段时间需要学习知道怎么去使用这个数据库。

  这里我先简单的介绍一下什么是MongoDB,后面还会详细的介绍:

    MongoDB 是一个面向文档的通用型数据库,拥有 MySQL 等关系型数据库常用功能。除了能够创建、读取、更新和删除数据之外,也还提供了一些拓展的功能,

    如索引、聚合、特殊的集合类型(如时间有限的集合)、分片和集群,是一个易于使用、便于拓展的数据库。也正因为它的这些特性,也是前端童鞋使用得比较

    多的一种数据库。  

一、在CentOS中安装MongoDB

1.1、简介

  MongoDB 有两个版本类型:开源社区版(Community Edition)和企业版(Enterprise),功能上两者并没有什么区别,企业版主要是提供了更多的管理服务,

  有更高级的安全性,如LDAP 身份验证、Red Hat 标识管理认证。这里主要讨论开源社区版。官方提供了mongodb-org软件包,其中包含了 MongoDB 几乎所有

  所需功能,使用系统自带的yum软件包管理器可以非常方便地进行安装。

1.2、配置资源库

  为了确保系统能直接从指定地址获取软件包,创建/etc/yum.repos.d/mongodb-org-3.4.repo文件,填入如下内容配置 MongoDB 资源库:

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

  执行安装命令

sudo yum install -y mongodb-org

二、启动

2.1、简介

  MongoDB 安装完后,默认会生成很多命令,如 mongo、mongod、mongodump、mongooplog等。

  其中比较常用的有 mongod(用于启动 MongoDB 服务器)、mongo(提供强大的类似 javascript 环境的 mongo shell 交互式功能)。

  如果简单地通过执行 mongod 命令来启动 MongoDB 服务器,则无法使它在后台运行,控制台关了服务也自动停止了,也无法快速启动指定配置的服务,更不能做

  到开机自启动。Centos 提供了 service 命令来帮我们快速地启动一些服务,不过它其实就是跑一个指定的 shell 脚本。当我们输入 service 命令时,linux 会去

  /etc/rc.d/init.d 下去找这个脚本运行,init.d 下面放了很多这种脚本(如常见的 httpd)。而当我们需要设置开机自启动时也可以通过 chkconfig 命令来设置

  这些系统服务开机时启动。

2.2、启动命令及配置开机启动

  1)启动命令

  MongoDB 安装完后默认会在 /etc/rc.d/init.d 下生成启动脚本 mongod,所以我们可以通过下面命令启动 MongoDB 服务器:

sudo service mongod start

  2)如需要设置开机启动可以执行下面脚本

sudo chkconfig mongod on

  3)查看是否启动

  方法一:

    使用命令:netstat -lanp |grep ""27017" 

    

  方式二:

    访问 /var/log/mongodb/mongod.log 日志文件,如果看到 [initandlisten] waiting for connections on port <port> 的日志则说明启动成功。 

    

三、MongoDB设置

3.1、MongoDB配置文件  

  每个 mongod 服务器进程都需要有自己的数据存储路径,默认是 /var/lib/mongo。如果需要启动多个服务器进程,则可以指定不同的路径来启动。

  启动的默认配置文件是 /etc/mongod.conf。我们可通过这个配置文件实现所需配置:官方配置文件详解

# mongod.conf

# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/ # where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log # Where and how to store data.
storage:
dbPath: /var/lib/mongo
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger: # how the process runs
processManagement:
fork: true # fork and run in background
pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile # network interfaces
net:
port:
bindIp: 127.0.0.1 # Listen to local interface only, comment to listen on all interfaces. #operationProfiling: #replication: #sharding: ## Enterprise-Only Options #auditLog: #snmp:

  注意:

    有一个需要注意的配置是 net 下的 bingIp,如果设置 bindIp: 127.0.0.1 则外网机器无法直接连接此服务器进程。

四、认证授权(MongoDB创建用户个库)

4.1、简介

  MongoDB 服务器进程默认启动后,并无任何认证机制,即任何用户都可随意连接数据库进行读写操作。MongoDB 有个比较特殊的数据库 admin,

  专门用来存储数据库管理员信息的。在 MongoDB 里是有不同的角色的,每种角色只能拥有相应的权限,用户也能自定义角色。官方详解

4.2、认证授权步骤

  为了启用认证机制,我们需要创建两个用户:拥有 userAdminAnyDatabase 角色的用户、对应数据库读写权限 readWrite 的用户,如:  

  先启动不需要认证的服务器进程,用 mongo shell 直接进入配置:

  1)添加一个超级用户“root”

    步骤一:打开Mongo shell  

    mongo

    

    步骤二:进入admin表

    use admin

    

    步骤三:创建一个超级管理账户

    

    步骤三:查看用户是否创建成功

    

    表示创建成功了!

五、MongoDB权限

  1)数据库用户角色:read、readWrite

    read:允许用户读取指定数据库 
    readWrite:允许用户读写指定数据库

  2)数据库管理角色:dbAdmin、dbOwner、userAdmin

    dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile  

    userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户  

  3)集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager

    clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限

  4)备份恢复角色:backup、restore  

  5)所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase

    readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限 
    readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限 
    userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 
    dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。

  6)超级用户角色:root    

.    root:只在admin数据库中可用。超级账号,超级权限

    注意:这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)

MongoDB(一)环境搭建与初始配置的更多相关文章

  1. Django之环境搭建以及初始配置

    Django采用MVC架构,百度百科介绍如下: 全名Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业 ...

  2. ArcGIS Pro开发Web3D应用(1)——环境搭建与初始实例

    1.搭建环境 1.1 ArcGIS Web3D软件环境 ArcGIS Pro 2.0(必须) ArcGIS for Enterprise 10.5.1 (从10.5开始称呼为Enterprise)包括 ...

  3. 关于路由器漏洞利用,qemu环境搭建,网络配置的总结

    FAT 搭建的坑 1 先按照官方步骤进行,完成后进行如下步骤 2 修改 move /firmadyne into /firmware-analysis-toolkit navigate to the ...

  4. MongoDB的环境搭建及启动

    MongoDB环境搭建及配置 一.环境搭建 Mac:brew install mongodb 常见问题: Error: Permission denied @ unlink_internal 解决方案 ...

  5. hadoop集群环境搭建之安装配置hadoop集群

    在安装hadoop集群之前,需要先进行zookeeper的安装,请参照hadoop集群环境搭建之zookeeper集群的安装部署 1 将hadoop安装包解压到 /itcast/  (如果没有这个目录 ...

  6. hadoop学习第一天-hadoop初步环境搭建&伪分布式计算配置(详细)

    一.虚拟机环境搭建 我们用的虚拟机为vmware,Linux镜像为centOS6.5. vmware安装 安装没什么多说的,一路下一步,但是在新建虚拟机的时候有两个地方需要注意: 1.分配处理器1个就 ...

  7. Linux巩固记录(1) J2EE开发环境搭建及网络配置

    由于要近期使用hadoop等进行相关任务执行,操作linux时候就多了 以前只在linux上配置J2EE项目执行环境,无非配置下jdk,部署tomcat,再通过docker或者jenkins自动部署上 ...

  8. PHP LAMP环境搭建及网站配置流程(完整版)

    心血来潮想做一个自己的博客网站,写一些文章做技术分享,平时遇到的一些问题的解决办法都记录下来,网站搭建成功,那么第一篇博客自然就是整个网站的搭建以及域名的注册.备案.解析流程,总共分为以下几步: 1. ...

  9. Docker学习之——Node.js+MongoDB+Nginx环境搭建(一)

    最近在学习Node.js相关知识,在环境搭建上耗费了不少功夫,故此把这个过程写下来同大家分享一下,今天我先来介绍一下Docker,有很多人都写过相关知识,还有一些教程,在此我只想写一下,我的学习过程中 ...

随机推荐

  1. 《从Paxos到Zookeeper:分布式一致性原理与实践》【PDF】下载

    内容简介 Paxos到Zookeeper分布式一致性原理与实践从分布式一致性的理论出发,向读者简要介绍几种典型的分布式一致性协议,以及解决分布式一致性问题的思路,其中重点讲解了Paxos和ZAB协议. ...

  2. 使用angularjs实现注册表单

    本文是在学习angularjs过程中做的相应的练习 github地址 https://github.com/2016Messi/angularjs1.6-form 演示地址 https://2016m ...

  3. 字符截取:cut,格式化输出:printf,字符截取:awk,文件或命令输出编辑:sed

    cut 选项 文件名 -f 列号 提取第几列 -d 分隔符 指定分隔符把行分成多列 不能以空格为分隔符. [root@localhost ~]# cat testfile no. name sex s ...

  4. Wincc flexable的局势视图的组态

    1.趋势视图介绍 2.实时趋势视图的组态 1)创建连接和变量 2)开始组态局势视图 3)设置趋势视图的属性,添加一个趋势 3.模拟运行HMI,观察局势图

  5. wait/notify 实现多线程交叉备份

    一.任务 创建20个线程,其中10个线程是将数据备份到 A 数据库中,另外10 个线程将数据备份到 B 数据库中,并且备份 A 数据库和 备份 B 数据库的是交叉运行的. 二.实现 1.实现备份 A ...

  6. C#又能出来装个B了。一步一步微信跳一跳自动外挂

    PS:语言只是载体.思维逻辑才是王道 前天看见了个python的脚本.于是装python.配置环境变量.装pip.折腾了一上午,最终装逼失败. 于是进入博客园,顶部有篇文章吸引了我 .NET开发一个微 ...

  7. 云计算---openstack镜像制作

    一:本地部署KVM 1.安装KVM 1.1安装须知 查看CPU是否支持kvm完全虚拟机. [root@LINUX ~]# grep "flags" /proc/cpuinfofla ...

  8. localStorage用法总结

    这些知识是参考下面的朋友的.谢谢分享. http://www.jianshu.com/p/39ba41ead42e http://www.cnblogs.com/st-leslie/p/5617130 ...

  9. [编织消息框架][JAVA核心技术]动态代理应用7-IRpcSend实现

    根据设计生成两个接口,IRpcSend send方法返回数据要求包装成QResult对象 public interface IRpcSend { public <T> QResult< ...

  10. oracle 导入 dmp

    执行命令 imp his/his@orcl File=/home/oracle/core_his50_common.dmp FULL=Y