具有Docker容器的MongoDB,无法使用mongorestore还原具有不同名称的数据库

时间:2018-08-21 20:42:15

标签: mongodb docker

这是我的设置

使用docker创建mongodb实例

sudo docker run -p 27017:27017 -e MONGODB_DATABASE = DEV -e MONGODB_USER = dev -e MONGODB_PASSWORD = dev123 -e MONGODB _ADMIN_PASSWORD = dev123 -e MONGODB_ROLE = readWriteAnyDatabase --name mymongo -v testdb:/ var / lib / mongodb / data -d mongo

使用输入的容器

sudo docker exec -it container-id / bin / bash

执行的命令

mongodump -d DEV -u dev -p dev123(完美运行)

现在,在还原到其他数据库时发生了问题

mongorestore --db测试./dump/DEV-抛出以下错误

失败:test.duke:错误读取数据库:未经测试授权执行命令{listCollections:1,游标:{batchSize:0}}

现在停留了三天,我们将不胜感激(docker和mongodb的初学者)

1 个答案:

答案 0 :(得分:0)

如果您的其他mongo数据库具有身份验证,则应使用:

mongorestore -u <username> -p <password> --authenticationDatabase=<database name> --db=test ./dump/DEV

其他建议是创建转储,例如:

mongodump --port 55555 -d testdb --gzip --archive=testdb.tar

然后还原:

mongorestore --port 55555  --gzip --archive=testdb.tar