代码之家  ›  专栏  ›  技术社区  ›  Martin Drozdik rlbond

如何使用MongoDB本地主机异常?

  •  0
  • Martin Drozdik rlbond  · 技术社区  · 6 年前

    documentation :

    localhost异常允许您 启用访问控制,然后 创建系统中的第一个用户 . 对于localhost异常, 启用访问控制后,连接到本地主机接口 和 在管理数据库中创建第一个用户 . 第一个用户必须 具有创建其他用户的权限,例如具有 UsDestmin 用户管理数据库 角色。

    所以我运行了最新的Mongo,启用了访问控制(--auth):

    docker run -p 27017:27017 mongo --auth
    

    连接我的shell并尝试创建 管理员 用户:

    mongo
    MongoDB shell version v4.0.2
    connecting to: mongodb://127.0.0.1:27017
    MongoDB server version: 4.0.2
    > use admin
    switched to db admin
    > db.createUser(
    ...   {
    ...     user: "admin",
    ...     pwd: "password",
    ...     roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
    ...   }
    ... )
    2018-10-03T15:29:30.234+0200 E QUERY    [js] Error: couldn't add user: command createUser requires authentication :
    _getErrorWithCode@src/mongo/shell/utils.js:25:13
    DB.prototype.createUser@src/mongo/shell/db.js:1491:15
    @(shell):1:1
    

    我做错什么了?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Alex Blex    6 年前

    您没有连接到本地主机,而是连接到导出端口。 要使异常工作,您需要从容器内连接到本地主机。 例如。:

    docker exec -it `docker ps --filter ancestor=mongo --format "{{.ID}}"` mongo