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数据库中可用。超级账号,超级权限
完
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:docker安装mongodb - Python技术站