docker安装mongodb
# 先安装docker # 执行命令"sudo docker pull mongo:latest" 拉取最新版的mongodb镜像文件 # 运行启动命令"docker run -p 27017:27017 -v /data/mongo:/data/db --name mongodb -d mongo --auth" # 在上面的命令中,几个命令参数的详细解释如下: -p 映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务 -v 为设置容器的挂载目录,这里是将本机的“/data/mongo”目录挂载到容器中的/data/db中,作为 mongodb 的存储目录 --name 为设置该容器的名称 -d 设置容器以守护进程方式运行 --auth 开启权限,不然不用账号密码就能访问 # 以 admin 用户身份进入mongo : docker exec -it mongodb mongo admin
# 创建管理员admin账号
db.createUser({ user: 'admin', pwd: 'Aa123456', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
db.auth("admin","Aa123456"); # 返回1成功
# 给用户root添加root角色
db.grantRolesToUser('root',[{role:'root',db:'admin'}]);
# 创建普通
# 用户dev就拥有对yapi数据库的访问权限
db.createUser({ user: 'dev', pwd: 'Aa123456', roles: [ { role: "readWrite", db: "yapi" } ] });
# 可以切换数据库后创建对应的用户
use otherdb;
# 切换之后创建的用户在输入链接的时候对应的授权数据库就是对应的otherdb;
db.createUser({ user: 'xx', pwd: 'xxxx', roles: [ { role: "readWrite", db: "xxx" } ] });
read: 只能读取指定数据库
readWrite: 能读写指定数据库
dbAdmin: 能执行管理函数,如索引创建、删除,查看统计或访问 system.profile
dbOwner: 对当前数据库有全部权限
userAdmin: 能创建、删除和管理用户
clusterAdmin: 只能在 admin 数据库中可用,能赋予用户所有分片和复制集相关函数的管理权限
readAnyDatabase: 只能在 admin 数据库中可用,能赋予用户所有数据库的读权限
readWriteAnyDatabase: 只能在 admin 数据库中可用,能赋予用户所有数据库的读写权限
userAdminAnyDatabase: 只能在 admin 数据库中可用,能赋予用户所有数据库的 userAdmin 权限
dbAdminAnyDatabase: 只能在 admin 数据库中可用,能赋予用户所有数据库的 dbAdmin 权限
root: 只能在 admin 数据库中可用。超级权限
# 切换admin数据库
use admin;
# 查询数据库对应的用户
show users;
# 授权登录dev
db.auth("dev","Aa123456");#返回1成功
# 新建其他用户和对应的数据库访问可以和dev的方式一样
# 删除用户
db.system.users.remove({user:"用户名"});或者 db.system.users.remove({_id:"用户id"});
# 修改密码
db.changeUserPassword('admin','新密码');
https://blog.csdn.net/liguocong168/article/details/127751282
# 重置密码解决办法
#!/bin/sh
#1 停止原有容器
docker container stop mongodb-single
#2 启动新容器,将原由容器的卷挂载到新容器中。使用--noauth选项关闭认证
docker run -it --name mongo-repair --rm --volumes-from mongodb-single mongo:3.4.10 --smallfiles --rest --noauth
#3 进入新容器,并直接连接,直接重置密码
docker exec -it mongo-repair mongo --port 27017
> db.changeUserPassword("admin", "new-pwd")
#4 停止新容器
docker container stop mongo-repair
#5 启动原有容器
docker container start mongodb-single
#6 验证是否成功
mongo -u admin -p 'new-pwd' 10.10.21.36:27017/admin <<<'db.runCommand({connectionStatus: 1})'
————————————————
https://blog.csdn.net/u013670453/article/details/114360562
# 修改权限
https://www.cnblogs.com/zhm1985/articles/16699810.html
# 备份和恢复
mongodump -h 127.0.0.1 --forceTableScan -uXXX --authenticationDatabase=xxx -pXXX -o /data/db/bak/ # 不指定d就是所有
mongorestore -h 127.0.0.1 -uXXX -pXXX --authenticationDatabase=XXX -d XXX ./XXX
# blog.csdn.net/qq_25843323/article/details/129076057
# www.cnblogs.com/dbabd/p/13139556.html
# https://blog.csdn.net/m0_37615458/article/details/124007838
转自:
www.cnblogs.com/peyshine/p/12876471.html
blog.csdn.net/xiaojin21cen/article/details/84994452
www.runoob.com/docker/docker-install-mongodb.html

浙公网安备 33010602011771号