zoukankan      html  css  js  c++  java
  • docker安装mongodb

    1、创建文件夹结构

    ├── conf
    │   ├── mongo.conf
    ├── data
    └── log
        └── mongo.log
    #赋权限
    chmod 777 mongo.log 
    #mongo.conf文件内容
    port=27017
    dbpath=/data/db/
    logpath=/data/log/mongo.log
    logappend=true
    maxConns=10000
    auth=true
    oplogSize=2048

    2、docker启动命令

    docker run --name mongodb --restart always 
    --privileged -p 27777:27017 
    -v /software/mongodb/data:/data/db 
    -v /software/mongodb/log:/data/log 
    -v /software/mongodb/conf:/data/configdb 
    -v /software/mongodb/conf/mongo.conf:/data/configdb/mongod.conf 
    -d mongo --config /data/configdb/mongod.conf --bind_ip_all  
    # -v 指定配置文件启动
    # --bind_ip_all 允许所以IP访问
    # ----restart=always  Docker服务重启容器也启动
    # --privileged  拥有真正的root权限

    3、mongo设置

    docker exec -it mongodb bash
    mongo
    > use admin  #切换数据库,如果没有的话就是创建库
    > db.createUser({user:'super',pwd:'super', roles:[{role:'root', db:'admin'}]})  #创建用户
    > db.auth("super","super")  #切换用户
    > db.test.find().pretty()   #查找所有用户

     4、创建数据库以及用户

    #创建用户
    db.createUser( {user: "root",pwd: "123456",roles: [ { role: "dbAdmin", db: "luckysheetdb" } ]})
    
        #登陆mongo
        mongo
        #切换数据库,不存在创建
        use test
        #创建用户
        db.createUser(
            {
                user: "test",
                pwd: "12345",
                roles: [ { role: "readWrite", db: "test" } ]
              }
        )
        #创建表
        collection db.createCollection('test')
        #插入记录
        db.runoob.insert({"name":"test"})
        #查看表
        show collecions
        #查看记录
        db.col.find({"name":"test"}).pretty()

     常用命令

    > show dbs  #显示数据库列表 
    > show collections  #显示当前数据库中的集合(类似关系数据库中的表)
    > show users  #显示用户
    > use <db name>  #切换当前数据库,如果数据库不存在则创建数据库。 
    > db.help()  #显示数据库操作命令,里面有很多的命令 
    > db.foo.help()  #显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令 
    > db.foo.find()  #对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据) 
    > db.foo.find( { a : 1 } )  #对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1
    
    > db.dropDatabase()  #删除当前使用数据库
    > db.cloneDatabase("127.0.0.1")   #将指定机器上的数据库的数据克隆到当前数据库
    > db.copyDatabase("mydb", "temp", "127.0.0.1")  #将本机的mydb的数据复制到temp数据库中
    > db.repairDatabase()  #修复当前数据库> db.getName()  #查看当前使用的数据库,也可以直接用db
    > db.stats()  #显示当前db状态
    > db.version()  #当前db版本> db.getMongo()  #查看当前db的链接机器地址
    > db.serverStatus()  #查看数据库服务器的状态

    角色

    内建的角色 
    数据库用户角色:read、readWrite; 
    数据库管理角色:dbAdmin、dbOwner、userAdmin; 
    集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager; 
    备份恢复角色:backup、restore; 
    所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase 
    超级用户角色:root // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase) 
    内部角色:__system 
    角色说明: 
    Read:允许用户读取指定数据库 
    readWrite:允许用户读写指定数据库 
    dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile 
    userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户 
    clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。 
    readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限 
    readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限 
    userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 
    dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。 
    root:只在admin数据库中可用。超级账号,超级权限

  • 相关阅读:
    2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 C: Coconut
    2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 A: Banana
    第2周项目1c++语言中函数参数传递的三种方式
    第2周项目2程序的多文件组织
    【BZOJ 3224】普通平衡树
    【POJ 1741】Tree
    浅谈树分治
    【luogu 2709 / BZOJ 3781】小B的询问
    【luogu 1972 / BZOJ 1878】HH的项链
    【BZOJ 3339 / BZOJ 3585 / luogu 4137】Rmq Problem / mex
  • 原文地址:https://www.cnblogs.com/xuchen0117/p/14419473.html
Copyright © 2011-2022 走看看