前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MongoDB(一)环境搭建与初始配置

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

作者头像
用户1195962
发布2018-01-18 17:04:24
2.3K0
发布2018-01-18 17:04:24
举报
文章被收录于专栏:LanceToBigDataLanceToBigData

前言

  最近的项目中需要用到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 资源库:

代码语言:javascript
复制
[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

  执行安装命令

代码语言:javascript
复制
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 服务器:

代码语言:javascript
复制
sudo service mongod start

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

代码语言:javascript
复制
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。我们可通过这个配置文件实现所需配置:官方配置文件详解

代码语言:javascript
复制
# 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  

代码语言:javascript
复制
    mongo

    步骤二:进入admin表

代码语言:javascript
复制
    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)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-12-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、在CentOS中安装MongoDB
    • 1.1、简介
      • 1.2、配置资源库
      • 二、启动
        • 2.1、简介
          • 2.2、启动命令及配置开机启动
          • 三、MongoDB设置
            • 3.1、MongoDB配置文件  
            • 四、认证授权(MongoDB创建用户个库)
              • 4.1、简介
                • 4.2、认证授权步骤
                • 五、MongoDB权限
                相关产品与服务
                数据库
                云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档