MongoDB(一)环境搭建与初始配置

前言

  最近的项目中需要用到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=1
enabled=1
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: 27017
 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)

时间: 2024-11-10 13:21:27

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

Linux mongodb 环境搭建与初始配置

前言 MongoDB 是一个面向文档的通用型数据库,拥有 MySQL 等关系型数据库常用功能.除了能够创建.读取.更新和删除数据之外, 也还提供了一些拓展的功能,如索引.聚合.特殊的集合类型(如时间有限的集合).分片和集群,是一个易于使用.便于拓展的数据库. 也正因为它的这些特性,也是前端童鞋使用得比较多的一种数据库.蚂蚁金服的Basement Object 数据存储也是类似 MongoDB 的一种存储方式. 下面我们来看看如何在 Linux 系统(以 centos 系统为例)下快速地搭建起 M

Android # Android 环境搭建之 Python 配置

在终端输入python,然后import sysprint sys.path The Python Tutorial - Python v2.7.7 documentation https://docs.python.org/2.7/tutorial/index.html Python 3.1.2和2.7比较哪个版本更稳定?_python吧_百度贴吧 http://tieba.baidu.com/p/936048566 python2.7.3和3.3.2的区别_百度知道 http://zhida

ubuntu下eclipse+erlang+mongodb开发环境搭建

ubuntu下eclipse+erlang+mongodb开发环境搭建 - Linux操作系统:Ubuntu_Centos_Debian - 红黑联盟 最近公司webGame项目中用到了Erlang+MongoDB,没办法项目需要那就学呗. 学这个东西最起码得有环境吧,今天搭建开发环境就顺便记录一下,依然在ubuntu下进行开发. 顺便说下,如果做开发,最好选择linux,因为很多环境在linux下搭建很方便.win下一般也会 有相应的发法搭建,但是经常会遇到一些莫名其妙的问题.因此建议做开发的

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

FAT 搭建的坑 1 先按照官方步骤进行,完成后进行如下步骤 2 修改 move /firmadyne into /firmware-analysis-toolkit navigate to the Firmadyne folder and execute "sudo ./download.sh" (seems like I missed this step when setting up Firmadyne) move fat.py and reset.py into Firmady

黑马程序员-java基础知识+环境搭建和变量配置

一.dos命令 软件:是一系列按照特定顺序组织的计算机数据和指令的集合. 交互方式:图形化界面.命令行方式 dir  directory 显示文件和子目录 cd   change directory 改变当前的路径(进入指定目录) md   make directory 新建一个子目录(文件夹) rd   remove directory 删除一个子目录(文件夹) cd.. 返回上一文件夹 cd/  返回根目录(磁盘) del  delete 删除文件 (不走回收站)   del *.txt(删

Android4.x环境搭建--使用已经配置好环境的eclipse

使用Eclipse做Android开发,需要先在Eclipse上安装ADT(Android Development Tools)插件. 1.安装JDK 1.7 JDK官网http://www.oracle.com/technetwork/java/javase/downloads/index.html,下载JDK7软件包,我安装的是1.7.0_55版本.安装完JDK后,配置下JDK环境即可. 2.下载Eclipse Eclipse官网:http://www.eclipse.org/downloa

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

由于要近期使用hadoop等进行相关任务执行,操作linux时候就多了 以前只在linux上配置J2EE项目执行环境,无非配置下jdk,部署tomcat,再通过docker或者jenkins自动部署上去 看下进程,复制粘贴删除等基本操作,很多东西久了不用就忘了,所有写个demo巩固下曾经的linux知识 后续会有hadoop等主流的大数据相关环境的搭建及使用 ---------------------------------------------------------------------

MongoDB + Express 环境搭建记

最近项目需要使用 MongoDB,所以不得不搭建 MongoDB 环境,此文记录搭建过程及使用过程中需要了解的问题. Linux + Windows 混合搭建调试 MongoDB 记录 版本介绍 : windows : win10 64bit linux:ubuntu 14.0.4 nodejs:6.11.2 MongoDB: 4.0.9 MongoDB安装 MongoDB下载地址:https://www.mongodb.com/download-center/community ubuntu安

mongodb主从环境搭建

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型.Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引. 它的特点是高性能.易部署.易使用,存储数据非常方便.主要功能特性有: *面向集合存储,易存储对象类型的数据. *模式自由. *支持动态查询.