docker安装mongodb

  1. 安装可以开启密码登陆,开启权限的mongo
  2. 根据官方mongo镜像,拉取到本地
  3. 通过docker run -p 27017:27017 --name mongo1 -v /data/db:/data/db -d imgId --auth 开启 mongo容器,-v 左侧指定的是宿主机目录,右面是容器目录,开启mongo容器之前,保证宿主机该目录为空,不然会出现某些错误
  4. 然后通过docker exec -it containID mongo admin命令,或者直接 docker exec -it containId bash进入到mongo容器,然后连接上容器中的mongo之后,
    1. 输入命令use admin,使用admin数据库。
    2. 通过db.createUser({user:"root",pwd:"root",roles:[{role:"root",db:"admin"}]}) 命令,创建一个对于admin数据库最高权限的账户。创建成功之后会返回Successfully add user { xxxxx…略}
    3. 成功之后通过命令db.auth('root','root'),进行登陆认证。然后返回1,然后use test(你要创建的数据库名称).
    4. 此时创建你需要的相对应权限的账户,db.createUser({user:"test",pwd:"test",roles:[{role:"readWrite",db:"test"}]}),user与pwd就是账户与密码,role,就是下面的权限,db就是这个用户在哪个数据库所拥有这些权限(注意:创建此类账户时,此时的登陆账户必须为我们最开始创建的root账户,如果不是,请重新使用use admin命令,加上db.auth(‘root’,’root’)登陆该账户【因为在该mongo中只有此账户拥有管理用户的权限】)
      1. 权限对应:
      2. Read:允许用户读取指定数据库
      3. readWrite:允许用户读写指定数据库
      4. dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
      5. userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
      6. clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
      7. readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
      8. readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
      9. userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
      10. dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
      11. root:只在admin数据库中可用。超级账号,超级权限
    5. 上一步创建成功之后,我们就可以先通过ctrl+D命令推出容器,然后再次通过命令:docker exec -it containId bashs进入该容器,连接mongo,通过use test,(test 为我们之前创建的数据库名字),进入到我们的数据库,此时通过show dbs 我们尚无法看到我们创建的test数据库,(因为我们还未在其中添加集合),此时登陆我们为此数据库创建的读写账户,db.auth(‘test’,’test’),返回1后,我们就可以通过db.collectionName.insert({x:1}),添加我们所需要的集合.成功后返回WriteResult({ "nInserted" : 1 })。

此时我们的开启了权限的mongo就创建成功了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值