docker部署
- docker search mongo
- docker pull mongo
- docker images
- docker run -itd --name mongo -p 27017:27017 mongo --auth
- docker ps
- docker exec -it mongo mongo admin
- db.createUser({ user:‘admin’,pwd:‘123456’,roles:[ { role:‘userAdminAnyDatabase’, db: ‘admin’}]});
- db.auth(‘admin’, ‘123456’)
到这里似乎就已经完成了。。接下来我打开robot连接
but !!
当我开始creat database,点击create的时候,它就会报错👇
not authorized on test to execute command { listCollections: 1.0 }...
解决方法
重新建立一个user,修改它的权限为root
- docker exec -it 99511e3166ed bash
- mongo
- exit
- mongo -u admin -p 123456
- show dbs;
- use admin
- db.createUser({user: “root”,pwd: “123456”,roles: [{ role: “root”, db: “admin” }]});
mongodb导入数据
- 先将宿主机上的数据copy到容器中(拷贝到mongodb的bin目录下,可以在进入mongodb容器的bin目录之后通过ls来查看是否拷贝成功)
docker cp /Users/doris/Documents/eportalplus mongodb:/bin/
- 进入容器
docker exec -it mongodb bash
- 恢复到数据库实例(这里要先在robot中建立一个eportalplus数据库)
mongorestore -d eportalplus /bin/eportalplus