Docker安装Mongo并设置用户名密码

命令

docker run -itd --name mongo --restart=on-failure:10 -p 27017:27017 -v /home/db  mongo --auth

–restart=on-failure:10:为mongo添加重启策略,在非零状态下退出,重试次数设置为10次
-p 27017:27017:映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务。
–auth:需要密码才能访问容器服务。
-v:映射文件到本地文件夹,这样数据库文件就会在本地存储,即使删除了容器或镜像至少数据库文件还在,数据不会丢失。
-d:表示守护态运行

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

基于角色的权限说明

内置角色
数据库用户角色
read: 只读数据权限
readWrite:学些数据权限

数据库管理角色
dbAdmin: 在当前db中执行管理操作的权限
dbOwner: 在当前db中执行任意操作
userADmin: 在当前db中管理user的权限

备份和还原角色
backup
restore

跨库角色
readAnyDatabase: 在所有数据库上都有读取数据的权限
readWriteAnyDatabase: 在所有数据库上都有读写数据的权限
userAdminAnyDatabase: 在所有数据库上都有管理user的权限
dbAdminAnyDatabase: 管理所有数据库的权限

集群管理
clusterAdmin: 管理机器的最高权限
clusterManager: 管理和监控集群的权限
clusterMonitor: 监控集群的权限
hostManager: 管理Server

超级权限
root: 超级用户

如果你忘记了在Docker中运行的Mongo数据库的用户名密码,可以按照以下步骤进行操作: 1. 首先,进入MongoDocker容器。使用以下命令: ``` docker exec -it mongo bash ``` 2. 进入Mongo命令行界面。使用以下命令: ``` mongo ``` 3. 在admin数据库中创建一个root用户。使用以下命令: ``` db.createUser({ user:'admin', pwd:'123456', roles:\[ { role:'userAdminAnyDatabase', db: 'admin'}\]}) ``` 4. 创建一个超级用户。使用以下命令: ``` db.createUser({ user: "root" , pwd: "root", roles: \["root"\]}) ``` 现在你可以使用这些用户名密码来访问Mongo数据库了。如果你想删除特定的用户,可以使用以下命令: - 删除指定用户:`db.system.users.remove({user:"AUser"})` - 删除指定数据库下的用户(假设数据库名为accountdb):`use accountdb.dropUser("AUser")` 请注意,如果你修改了Mongo配置文件或重启了Docker容器,你可能需要重新执行上述步骤来设置用户名密码。 #### 引用[.reference_title] - *1* *3* [docker-mongo添加用户名密码](https://blog.csdn.net/brightgreat/article/details/123437638)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Docker安装Mongo设置用户名密码](https://blog.csdn.net/m0_46205920/article/details/106115173)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值