• MongoDB系列七(Linux 安装 MongoDB).


    一、下载

    Linux:CentOS 7.3 64位

    MongoDB:3.6.4

    安装目录:/usr/local

    cd /usr/local
    wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.6.4.tgz

    二、解压缩

        解压缩安装包并重命名(方便管理)

    tar -zxvf mongodb-linux-x86_64-rhel62-3.6.4.tgz
    mv mongodb-linux-x86_64-rhel62-3.6.4 mongodb

    三、配置MongoDB

        需要配置三项内容,一个是数据文件夹(db,文件名可自定义),一个是日志文件夹(logs,文件名可自定义),一个是配置文件(mongo.conf)

    1、数据文件夹

    mkdir db

    2、日志文件夹

    mkdir logs

    3、创建配置文件

    # where to write logging data.
    systemLog:
      destination: file
      logAppend: true
      path: /usr/local/mongodb/logs/mongod.log #日志文件存放目录
    
    # Where and how to store data.
    storage:
      dbPath: /usr/local/mongodb/db #数据文件存放目录
      journal:
        enabled: true
    
    # how the process runs
    processManagement:
      fork: true  #以守护程序的方式启用,即在后台运行
      pidFilePath: /usr/local/mongodb/mongod.pid  # location of pidfile
    
    # network interfaces
    net:
      port: 27017 #端口
      bindIp: 0.0.0.0  # Listen to local interface only, comment to listen on all interfaces.端口对外开放

    4、效果图

    5、启动

        MongoDB 的 bin 目录下执行(注意 mongod.conf 配置的目录跟我们上面配置的目录对应):

    ./mongod --config /usr/local/mongodb/mongod.conf

    四、添加用户

        MongoDB 安装完成后默认是不用验证密码的,这在生产环境上是绝对不允许存在的,我们需要创建用户,并增加用户验证!

        如果将一个用户添加到admin数据库,这个用户将自动获得所有数据库的权限,即管理员账户。如果将一个用户添加到普通的数据库,这个用户只能获得该数据库的相关权限,即普通用户。

        切换至MongoDB的 bin目录下:

    1、添加管理员账户

    ./mongo
    >use admin
    >db.createUser({user:"root",pwd:"password",roles:["root"]})

    2、启用MongoDB 授权

        在 mongod.conf 后加上:

    security:
      authorization: enabled #启用授权

    3、重启生效

        关闭MongoDB服务器:

    ./mongod -shutdown -dbpath=/usr/local/mongodb/db

        授权后的启动MongoDB服务器:

    ./mongod --dbpath=/usr/local/mongodb/db --logpath=/usr/local/mongodb/logs/mongod.log --logappend --port 27017 --auth --fork

    4、认证用户

    ./mongo
    >use admin
    >show dbs //会提示用户未验证
    >db.auth("root","password")
    >show dbs
    admin   0.001GB
    config  0.000GB
    local   0.000GB

    5、添加普通用户

    > use lxcx //创建数据库
    > db.createUser({user:"summer",pwd:"summer",roles:[{"role" : "readWrite","db" : "lxcx"}]}); //创建这个数据库的读写权限用户

    user:用户名

    pwd:密码

    roles:指定用户的角色,可以用一个空数组给新用户设定空角色;在roles字段,可以指定内置角色和用户定义的角色。role里的角色可以选:

    Built-In Roles(内置角色):
        1. 数据库用户角色:read、readWrite;
        2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
        3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
        4. 备份恢复角色:backup、restore;
        5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
        6. 超级用户角色:root  
        // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
        7. 内部角色:__system
    Read:允许用户读取指定数据库
    readWrite:允许用户读写指定数据库
    dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
    userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
    clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
    readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
    readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
    userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
    dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
    root:只在admin数据库中可用。超级账号,超级权限
  • 相关阅读:
    ElasticSearch集群设置
    NEST与JSON语法对照 一 match与multi_match
    某墙尼妹,用个Response.Filter来解决StackExchange.Exceptional中google cdn的问题
    高频
    Linux 后台执行命令
    Mysql 常用函数汇总
    Golang 昨天、今天和明天
    Golang——Cron 定时任务
    Golang 资料整理
    Golang: for range
  • 原文地址:https://www.cnblogs.com/jmcui/p/9016698.html
Copyright © 2020-2023  润新知