docker操作mongo(docker desktop)(包含创建用户)

一、mongo导入导出数据

1.1 宿主机导入数据文件到mongo容器 

从本地导入文件到mongo容器

docker cp 宿主机文件路径 容器id:容器路径

  • 举例:
  • docker cp D:/down/bdd  8af2841a3d3c:/data/bdd

查看文件是否拷贝成功

docker exec -it mongo /bin/bash

cd  /data/bdd      使用ls命令 

1.2 mongo导入数据库文件

1)、进入mongo数据库

         docker exec -it mongo mongo admin

mongo5.0以上的版本使用mongo来执行mongodb命令已经不支持了

改用mongosh来替代mongo!

 docker exec -it mongo mongosh

2)、登录mongo(前面已经为admin创建过用户了

        db.auth(‘admin’,‘12345678’)

3)、创建数据库且为该数据库创建用户和分配权限

        use bdd #创建数据库,如果存在则使用该库
        db.createUser({ user:‘test’,pwd:‘12345678’,roles:[ { role:‘dbOwner’, db: ‘bdd’}]})

4)、进入到mongo容器,将所需要的数据文件导入mongo数据库 

        退出mongo数据库 ,进入mongo容器

exit   退出        

docker exec -it mongo bash

        将目标目录里的文件导入到数据库

mongorestore -d 数据库 --username 用户名 --password 密码 目录 

例如:mongorestore -d bdd --username test --password 123456 data/bdd

注意: 

在导入数据文件的时候,导入的哪个数据库就要为哪个数据库创建相应的用户和权限,否则会报权限错误异常。在不同的数据库中 用户是不共同的,不能用admin数据库下的用户去导到mydbs数据库 

创建用户:

登录到mong中时  默认在test库  默认没有用户

先切换admin

use admin

 为admin创建用户

db.createUser({ user:'root',pwd:'root123',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},'readWriteAnyDatabase']});

【user:‘root’ 】:用户名:root
【pwd:‘root23’】:密码为:root123
【role:‘userAdminAnyDatabase’】:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
【db: ‘admin’】:可操作的数据库
【‘readWriteAnyDatabase’】:赋予用户读写权限

dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值