美文网首页
Mongodb介绍与安装部署, 简单使用, 用户管理+验证库

Mongodb介绍与安装部署, 简单使用, 用户管理+验证库

作者: 火鸡不肥 | 来源:发表于2019-03-07 18:03 被阅读0次

    1. 逻辑结构

    Mongodb 逻辑结构 MySQL逻辑结构
    库database 库
    集合(collection) 表
    文档(document) 数据行

    2. 安装部署

    1、系统准备

    (1)redhat或cnetos6.2以上系统
    (2)系统开发包完整
    (3)ip地址和hosts文件解析正常
    (4)iptables防火墙&SElinux关闭
    (5)关闭大页内存机制

    root用户下

    cat >>/etc/rc.local <<EOF
    if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
      echo never > /sys/kernel/mm/transparent_hugepage/enabled
    fi
    if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
       echo never > /sys/kernel/mm/transparent_hugepage/defrag
    fi
    EOF 
    
    [root@standby opt]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
    [root@standby opt]# echo never > /sys/kernel/mm/transparent_hugepage/defrag
    
    

    其他系统关闭参照官方文档:

    https://docs.mongodb.com/manual/tutorial/transparent-huge-pages/

    3. mongodb安装配置

    1\. 创建所需用户和组
    groupadd -g 800 mongod
    useradd -u 801 -g mongod mongod
    passwd mongod
    
    2\. 创建mongodb所需目录结构
    mkdir -p /mongodb/bin
    mkdir -p /mongodb/conf
    mkdir -p /mongodb/log
    mkdir -p /mongodb/data
    
    3\. 上传并解压软件到指定位置
    上传到:
    cd   /opt/
    解压:
    tar xf mongodb-linux-x86_64-rhel70-3.4.16.tgz
    
    4\. 设置目录结构权限
    chown -R mongod:mongod /mongodb
    
    5\. 设置用户环境变量
    su - mongod
    
    cat >> .bash_profile << EOF
    export PATH=/mongodb/bin:$PATH
    EOF
    
    source .bash_profile
    
    6\. 启动mongodb
    mongod --dbpath=/mongodb/data --logpath=/mongodb/log/mongodb.log --port=27017 --logappend --fork
    
    7\. 登录mongodb
    [mongod@server2 ~]$ mongo
    注:连接之后会有warning,需要修改(使用root用户)
    vim /etc/security/limits.conf 
    #*       -       nofile       65535 
    
    reboot重启生效
    
    8\. 使用配置文件
    vim /mongodb/conf/mongodb.conf
    
    logpath=/mongodb/log/mongodb.log
    dbpath=/mongodb/data 
    port=27017
    logappend=true
    fork=true
    
    9\. 关闭mongodb
    mongod -f /mongodb/conf/mongodb.conf --shutdown
    
    10\. 使用配置文件启动mongodb
    mongod -f /mongodb/conf/mongodb.conf
    
    YAML模式的配置文件
    --
    NOTE:
    YAML does not support tab characters for indentation: use spaces instead.
    
    --系统日志有关  
    systemLog:
       destination: file        
       path: "/mongodb/log/mongodb.log"    --日志位置
       logAppend: true                     --日志以追加模式记录
    
    --数据存储有关   
    storage:
       journal:
          enabled: true
       dbPath: "/mongodb/data"            --数据路径的位置
    
     -- 进程控制  
    processManagement:
       fork: true                         --后台守护进程
       pidFilePath: <string>              --pid文件的位置,一般不用配置,可以去掉这行,自动生成到data中
    
    --网络配置有关   
    net:            
       bindIp: <ip>                       -- 监听地址,如果不配置这行是监听在0.0.0.0
       port: <port>                       -- 端口号,默认不配置端口号,是27017
    
    -- 安全验证有关配置      
    security:
      authorization: enabled              --是否打开用户名密码验证
    
    YAML例子 
    cat >> /mongodb/conf/mongo.conf << EOF
    systemLog:
       destination: file
       path: "/mongodb/log/mongodb.log"
       logAppend: true
    storage:
       journal:
          enabled: true
       dbPath: "/mongodb/data/"
    processManagement:
       fork: true
    net:
       port: 27017
    EOF  
    
    

    4. mongodb常用基本操作

    1. 启动, 关闭, 配置文件启动

      启动: mongod --dbpath=/mongodb/data --logpath=/mongodb/log/mongodb.log --port=27017 --logappend --for
      关闭: mongod -f mongodb.conf  --shutdown
      配置文件启动: mongod -f /mongodb/conf/mongo.conf 
      
      
    2. mongodb 默认存在的库

      test:
      登录时默认存在的库
      
      管理mongodb有关的系统库
      admin库:
       系统预留库,mongodb系统管理库
      local库:
       本地预留库,存储关键日志
      
      
    3. 命令分类

      库(database)
      show databases 
      show dbs
      use oldguo
      db
      
      表(collection集合)
      show tables
      show collections
      
      数据行(document)
      db.表名.insert()
      
      复制集有关(replication set):
      rs.
      
      分片集群(sharding cluster)
      sh.
      
      帮助 .help()
      db.help()
      db.a.help()
      rs.help()
      sh.help()
      
      
    4. 常用操作

      查看当前db版本     db.version()
      显示当前数据库     db
      查询所有数据库     show dbs
      切换数据库        use local
      查看所有的collection   show  tables;
      显示当前数据库状态     
       use local  
       db.stats()
      
      查看当前数据库的连接机器地址  db.getMongo()
      
      
    5. mongo与mysql对应关系

      mongo mysql
      库 -----> 库
      集合 -----> 表
      文档 -----> 数据行

    6. 库的操作:

      创建数据库:
       当use的时候,系统就会自动创建一个数据库。
       如果use之后没有创建任何集合。
       系统就会删除这个数据库。
      删除数据库
       如果没有选择任何数据库,会删除默认的test数据库
       db.dropDatabase()
      
      
    7. 集合的操作:

      方法1: db.createCollection('a')
      方法2:当插入一个文档的时候,一个集合就会自动创建。
      db.stu.insert({id:101,name:"zhangsan",age:20,gender:"m"})
      
      
    8. 查询数据:

      db.stu.find({}).pretty()
      db.stu.find({id:101}).pretty();
      
      
    9. 删除集合

      db.stu.drop()
      
      
    10. 重命名集合 , 把log改名为log1

    ```
    db.log.renameCollection("log1")
    
    ```
    
    1. 批量插入数据
    ```
    for(i=0;i<10000;i++){db.log.insert({"uid":i,
    "name":"mongodb","age":6,"date":new Date()})}
    
    ```
    

    5. 用户管理

    注意:
    验证库,建立用户时use到的库,在使用用户时,要加上验证库才能登陆。
    对于管理员用户,必须在admin下创建.

    use admin 
    mongo 10.0.0.200/admin
    
    db.createUser
    
    {
        user: "<name>",
        pwd: "<cleartext password>",
        roles: [
           { role: "<role>",
         db: "<database>" } | "<role>",
        ...
        ]
    }
    
    基本语法说明:
    
    user:用户名
    pwd:密码
    roles:
        role:角色名
        db:作用对象
    
    role:root, readWrite,read   
    
    验证数据库:
    
    mongo -u oldguo -p 123 10.0.0.200/oldguo
    总结:
    1、在创建普通用户时,一般事先use 到想要设置权限的库下;或者所有普通用户使用同一个验证库,比如test
    2、root角色的创建,要在admin下进行创建
    3、创建用户时你use到的库,在将来登录时候,使用以下方式登录,否则是登录不了的
    
    
    1. 创建超级管理员:管理所有数据库(必须use admin再去创建)

      $ mongo
      
      use admin
      
      db.createUser(
      {
          user: "root",
          pwd: "root123",
          roles: [ { role: "root", db: "admin" } ]
      }
      )
      
      验证用户
      db.auth('root','root123')
      
      配置文件中,加入以下配置
      security:
        authorization: enabled
      
      重启mongodb
      mongod -f /mongodb/conf/mongo.conf --shutdown 
      mongod -f /mongodb/conf/mongo.conf
      
      登录验证
      mongo -uroot -proot123  admin
      mongo -uroot -proot123  10.0.0.200/admin
      
      查看用户:
      use admin
      db.system.users.find().pretty()
      
      
    2. 创建库管理用户

      mongo -uroot -proot123  admin
      
      use app
      
      db.createUser(
      {
      user: "admin",
      pwd: "admin",
      roles: [ { role: "dbAdmin", db: "app" } ]
      }
      )
      
      db.auth('admin','admin')
      
      登录测试
      mongo -uadmin -padmin 10.0.0.200/app
      
      
    3. 创建对app数据库,读、写权限的用户app01:

      (1)超级管理员用户登陆
      mongo -uroot -proot123 admin
      
      (2)选择一个验证库
      
      use app
      
      (3)创建用户
      db.createUser(
       {
           user: "app01",
           pwd: "app01",
           roles: [ { role: "readWrite" , db: "app" } ]
       }
      )
      
      mongo  -uapp01 -papp01 app
      
      
    4. 创建app数据库读写权限的用户并对test数据库具有读权限:

      mongo -uroot -proot123 10.0.0.200/admin
      use app
      db.createUser(
      {
      user: "app03",
      pwd: "app03",
      roles: [ { role: "readWrite", db: "app" },
      { role: "read", db: "test" }
      ]
      }
      )
      
      
    5. 查询mongodb中的用户信息

      mongo -uroot -proot123 10.0.0.200/admin
      db.system.users.find().pretty()
      
      
    6. 删除用户(root身份登录,use到验证库)

      删除用户
      mongo -uroot -proot123 10.0.0.200/admin
      use app
      db.dropUser("app01")
      
      

    相关文章

      网友评论

          本文标题:Mongodb介绍与安装部署, 简单使用, 用户管理+验证库

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