代码之家  ›  专栏  ›  技术社区  ›  raju

Docker内Mongo的shell命令认证失败

  •  0
  • raju  · 技术社区  · 6 年前

    我试图在Mongo中运行一些shell命令,它位于Docker容器中。

    docker exec -it mongodb_mock  bash
    

    它打开了Mongo外壳。但当我在其中运行任何命令时,它都会给出验证错误:

        > show dbs
    2018-08-28T10:12:12.755+0000 E QUERY    [thread1] Error: listDatabases failed:{
        "ok" : 0,
        "errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
        "code" : 13,
        "codeName" : "Unauthorized"
    } :
    _getErrorWithCode@src/mongo/shell/utils.js:25:13
    Mongo.prototype.getDBs@src/mongo/shell/mongo.js:62:1
    shellHelper.show@src/mongo/shell/utils.js:781:19
    shellHelper@src/mongo/shell/utils.js:671:15
    @(shellhelp2):1:1
    

    请帮忙。

    编辑:这个数据库是通过mongoose/express从另一个容器创建的。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Ashok Reddy    6 年前

    首先,您需要向用户授权db,下面是示例命令

    use admin;
    db.auth('admin','password');
    

    那你就可以运行所有的查询了。或者在没有--auth参数的情况下启动mongod,这样就不需要用户身份验证。