ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

docker 安装mongdb

2019-02-19 13:42:29  阅读:224  来源: 互联网

标签:mongdb admin mongodb 数据库 db 用户 docker 安装 mongo


1:首先使用shell进入服务器 docker pull mongo   注:这是默认拉取最新的版本  可能你的代码连接不上 版本太高       可以接 :加版本号  如 4.0.4 等自由选择

  

2:下载完docker images  查看下

3:使用

docker run --name mongo -d -p 27017:27017 -v /home/mongo_data/configdb:/data/configdb -v /home/mongo_data/db:/data/db docker.io/mongo 

-p 将竟然端口挂载到宿主中  mongdb 默认使用27017

-v  将镜像数据存储数据挂载到 宿主机上   前面是宿主机地址 后面是mongdb存储数据的地址  -v /home/mongo_data/configdb:/data/configdb  宿主机文件夹没有的话自己建立在执行命令

4:docker ps  下查看容器是否启动成功 如图

 

 5:设置mongdb账户和管理员

docker exec -it 5f7627a82c13 /bin/bash    it后面跟的是镜像的id  进入容器内设置   如果不是root账户登录的  命令前面加上  sudo

 

 

   6:

三、关于mongo用户认证

mongodb密码和传统数据如mysql等有些区别:

  1. mongodb的用户名和密码是基于特定数据库的,而不是基于整个系统的。所有所有数据库db都需要设置密码

 

mongodb设置管理用户和密码:

复制代码
show dbs
在mongodb新版本里并没有admin数据库,但是并不妨碍第2步操作。
#进入admin数据库
use admin 
#创建管理员账户 db.createUser({ user: "useradmin", pwd: "adminpassword", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] }) mongodb中的用户是基于身份role的,该管理员账户的 role是 userAdminAnyDatabase。 ‘userAdmin’代表用户管理身份,’AnyDatabase’ 代表可以管理任何数据库。 #验证第3步用户添加是否成功 db.auth("useradmin", "adminpassword") 如果返回1,则表示成功。
复制代码

 

进入mongodb,用第3步的 管理员账户登录,用该账户创建其他数据库管理员账号

use admin
db.auth("useradmin", "adminpassword")

 

新建你需要管理的mongodb 数据的账号密码

use yourdatabase

db.createUser({ user: "youruser", pwd: "yourpassword", roles: [{ role: "dbOwner", db: "yourdatabase" }] })

注:dbOwner 代表数据库所有者角色,拥有最高该数据库最高权限。

 

新建数据库读写账户

use yourdatabase
db.createUser({ user: "youruser2", pwd: "yourpassword2", roles: [{ role: "readWrite", db: "yourdatabase" }] })

注:该用户用于该数据的读写,只拥有读写权限。

 

内建角色

  • Read:允许用户读取指定数据库
  • readWrite:允许用户读写指定数据库
  • dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
  • userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
  • clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
  • readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
  • readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
  • userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
  • dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
  • root:只在admin数据库中可用。超级账号,超级权限
 

Mongodb 用户验证登陆

第一种 (类似 MySql)

客户端连接时,指定用户名,密码,db名称

mongo --port 27017 -u "adminUser" -p "adminPass" --authenticationDatabase "admin"

 

第二种
客户端连接后,再进行验证

mongo --port 27017

use admin
db.auth("adminUser", "adminPass")
// 输出 1 表示验证成功

第三种:

进入容器中
mongo admin -u username -p passwd

 

URI 形式的访问

生产中常用 URI 形式对数据库进行连接

mongodb://your.db.ip.address:27017/foo

 

添加用户名密码验证

mongodb://simpleUser:simplePass@your.db.ip.address:27017/foo

实例:

#形式一
connect(host='mongodb://root:mongo@172.20.10.144:37017/ppmoney_website_minder') #形式二 connect(host='mongodb://root:mongo@172.20.10.144:37017/db?authSource=ppmoney_website_minder')

 

标签:mongdb,admin,mongodb,数据库,db,用户,docker,安装,mongo
来源: https://www.cnblogs.com/hebpengyuyan/p/10400526.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有