MongoDB安装—docker

1、查看mongo镜像版本

docker search mongo

image

2、获取最新版MongoDB镜像

docker pull mogo:latest

3、查看本地镜像

docker images
image

4、运行容器

docker run -itd --name mongo -p 27017:27017 mongo --auth

参数说明 :

  • -p 27017:27017 :映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务。
  • --auth:需要密码才能访问容器服务。

5、安装成功,使用docker ps查看容器的相关情况

容器正常运行

image

# 进入mongo admin库
docker exec -it mongo  mongo admin
# 创建一个名为 admin,密码为 111111的用户。
>  db.createUser({ user:'admin',pwd:'111111',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
# 尝试使用上面创建的用户信息进行连接。
> db.auth('admin', '111111')
image

此时的admin用户还没有读写权限

当运行db.stats() 或者 show users,你可能会遇到错误 not authorized on admin to execute command...

image

原因是用户admin没有授予readorreadWrite权限,可以如下设置,然后执行db.stats(),即可看到db的相关信息

 db.grantRolesToUser("admin", [ { role: "readWrite", db: "admin" } ])

image

附:添加用户时各个角色对应权限

1.数据库用户角色:read、readWrite;
2.数据库管理角色:dbAdmin、dbOwner、userAdmin;
3.集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4.备份恢复角色:backup、restore
5.所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6.超级用户角色:root

6、创建数据库用户(需要创建哪个数据库的用户,则需要切换到哪个数据库下)

首先保证你已经以用户管理员的身份登录 admin 数据库。然后用 use 命令切换到目标数据库,同样用 db.createUser() 命令来创建普通用户,

其中角色名为 “readWrite”。下面是一个例子:

> db.createUser({user:"testuser",pwd:"testpass",roles:["readWrite"]})
Successfully added user: { "user" : "testuser", "roles" : [ "readWrite" ] }
> db.auth("testuser","testpass")
1

如果在GUI客户端中看不到Collection则可能是登录的用户名密码没有那个database的权限,需要对应的database的用户名密码连接串登录。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值