zoukankan      html  css  js  c++  java
  • remote access mongodb in docker

    想着买的云主机闲着,就装个mongo练练手吧。

    云主机 ip: 111.229.x.x

    客户端用的是nosqlboost for mongodb,笔记本上。

    1. 拉mongodb image

       # docker pull mongo  

    2. 启动

       # docker run -d -p 27017:27017 -v /data/mongodb:/data/db mongo

       这样是不用验证用户名和密码。

    3. 建用户

       进入容器:  docker exec -it xx bash         xx 可通过 docker ps命令查看,可以是 容器id 或 容器名称

       # mongo

       >  use admin

       以下几种不同的建用户方式,mongo有认证数据库一说,就是 "认证数据库" 和用户能使用的数据库可以是同一个,也可以不是。

       建管理员, 认证数据库是admin

       > db.createUser({user:'tomcat123',pwd:'123456',roles:[{role:'userAdminAnyDatabase',db:'admin'}]})

       建用户 demo123, 认证数据库是admin,   demo123用户可以使用的数据库是demo. 
       > db.createUser({user:'demo123',pwd:'123456',roles:[{role:'readWrite',db:'demo'}]})

       建用户 demo1234, 认证数据库是admin,   demo1234用户可以使用的数据库是demo2. 
       > db.createUser({user:'demo1234',pwd:'123456,roles:[{role:'dbOwner',db:'demo2'}]})         这个和demo123的role不一样。
     

       > use history   切换数据库

       建用户 index123, 认证数据库是history,   index123用户可以使用的数据库是history. 

       > db.createUser({user:'index123',pwd:'123456',roles:[{role:'dbOwner',db:'history'}]})  

    4. 弄点测试数据

       > use demo

       > db.test.save({name:'tom'})

       > use history

       > db.test.save({name:'cat'})

       然后退出mongo和容器:  退出mongo   > exit,  退出容器:   # exit

    5. 关闭并删除刚建的容器

        因为容器使用的host的数据目录,所以删除容器后,数据还在,再启动一个容器时把这个目录 -v 加上就行了。

        # docker stop xx && docker rm xx               xx是容器名, 也可以是 id,  通过docker ps查看一下。

    6. 重新启动一个容器

        复制第二步命令,后面再加上一个  --auth, 表示mongo这回要验证用户名和密码了。

        # docker run -d -p 27017:27017 -v /data/mongodb:/data/db mongo --auth 

    7. 连接

       使用nosqlBooster for mongodb的对应版本(我原来有个两前下载的nosqlBooster, 结果怎么都连不上,最后下载了一个最新的版本就好用了)

      

       因为每个用户认证数据库不一样,所以图里填的Auth DB也是不一样,所以在建用户时要规划好认证数据库。

        ***  最后说一下,网上有文章说远程连接要改 容器中 /etc/mongod.conf.orig, 我这里没改,也可连接到云上的docker里的mongodb,不过云主机要开27017端口。 ***

  • 相关阅读:
    CSS笔记
    EasyUI笔记
    EasyUI treegrid 获取编辑状态中某字段的值 [getEditor方法获取不到editor]
    2019.10.12解题报告
    %lld 和 %I64d
    关于kmp算法
    洛谷p2370yyy2015c01的U盘题解
    About me & 友链
    关于Tarjan
    洛谷p3398仓鼠找suger题解
  • 原文地址:https://www.cnblogs.com/bear129/p/13570874.html
Copyright © 2011-2022 走看看