CentOs搭建MongoDB笔记

作者: 天一生水_AL | 来源:发表于2016-08-18 00:17 被阅读0次

    以下无权限的命令请使用sudo,或在root下操作

    一、安装mongodb

    1. 创建yum源文件:

    vim /etc/yum.repos.d/mongodb-org-3.2.repo
    

    2. 写入源地址:

    [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
    

    3. 执行安装命令:

    sudo yum install -y mongodb-org
    

    二、配置并启动mongod ( 本配置开启用户权限认证,拒绝裸奔)

    1. 创建配置文件:/etc/mongodb/mongod.conf xxxx为端口号

    # log save file
    systemLog:
      destination: file
      logAppend: true #allow append log
      path: /var/mongodb/log/mongo_xxxx.log
    # db save path
    storage:
      dbPath: /var/mongodb/data/
      journal:
        enabled: true
    # how the process runs
    processManagement:
      fork: true  # fork and run in background
      pidFilePath: /var/mongodb/run/mongo_xxxx.pid  # location of pidfile
    # network interfaces
    net:
      port: xxxx 
      bindIp: 0.0.0.0  # Listen to local interface only, comment to listen on all interfaces.
    #open auth very important, if you don't need auth,comment out below
    security:
      authorization: enabled
    

    2. 启动mongod服务

    建仓service

    1. 创建 /etc/init.d/mymongod
    2. 添加可执行权限 chmod +x /etc/init.d/mymongod
    3. 写入bash:
    #!/bin/bash
    # source function library
    . /etc/rc.d/init.d/functions
    #define commond
    CMD=/usr/bin/mongod
    #define my mongo.conf
    CONF_FILE=/etc/mongodb/mongod.conf
    start()
    {
     #&:run backgroud, also can use --fock  某些版本fock不可用,使用&
     $CMD -f $CONF_FILE --rest &
     echo "MongoDB is running background..."
    }
    stop()
    {
     pkill mongod
     echo "MongoDB is stopped."
    }
    case "$1" in
     start)
         start
         ;;
     stop)
         stop
         ;;
     *)
         echo $"Usage: $0 {start|stop}"
    esac
    
    
    1. 启动服务:
    service mymongod start
    

    若要停止服务可用:

    service mymongod stop
    

    三、连接mongodb,并创建用户

    1.连接mongodb

    mongo --host 127.0.0.1 --port 123123
    

    2. 创建超级管理员 (创建超级管理员前 停止mongod.conf中的鉴权 security: authorization: disabled)

    use admin;
    db.createUser({"user":"root","pwd":"passwd","roles":[{role:"root",db:"admin"},{role:"__system",db:"admin"},{role:"dbAdminAnyDatabase",db:"admin"}]});
    

    3. 打开mongod.conf鉴权,重新启动mongod服务

    4. 使用超级用户连接db

    1. ctrl+c 断开当前连接
    2. 连接db admin
    mongo  -u root -p root --host 127.0.0.1 --port xxxx admin
    

    4.创建普通用户,此处给于较大权限,创建普通用户要use到普通用户所在的数据库

    use userdb1
    db.createUser({"user":"user1","pwd":"passwd","roles":[{role:"dbAdmin",db:"userdb1"},{role:"userAdmin",db:"userdb1"},{role:"readWrite",db:"userdb1"}]})
    

    Built-In Roles(内置角色)说明:
    Read:允许用户读取指定数据库
    readWrite:允许用户读写指定数据库
    dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
    userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
    clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
    readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
    readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
    userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
    dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
    root:只在admin数据库中可用。超级账号,超级权限

    PS:关于每个角色所拥有的操作权限可以点击上面的内置角色链接查看详情
    参考官方文档说明

    4.使用普通用户连接db

    mongo  -u user1 -p passwd --host 127.0.0.1 --port xxxx userdb1
    

    相关文章

      网友评论

        本文标题:CentOs搭建MongoDB笔记

        本文链接:https://www.haomeiwen.com/subject/xuxvsttx.html