首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mongo Express使用docker compose进行身份验证失败

Mongo Express使用docker compose进行身份验证失败
EN

Stack Overflow用户
提问于 2021-07-04 02:04:40
回答 1查看 205关注 0票数 0

我正在尝试使用docker-compose在两个容器中运行mongodb和mongo express。看起来mongodb容器运行得很好,但是mongo express容器一直以代码0退出。

我得到的错误是:无法使用connectionString连接到数据库: mongodb://rootuser:rootpass@ mongodb:27017 /“mongo-express | (node:8) UnhandledPromiseRejectionWarning: MongoNetworkError:在第一次连接时连接到服务器mongodb:27017失败[MongoError:验证失败。

我的docker-compose.yml看起来像这样:

代码语言:javascript
复制
version: "3.8"
services: 
    mongodb:
        image: mongo
        container_name: mongodb
        ports:
          - 27017:27017
        volumes:
          - data:/data
        environment:
          - MONGO_INITDB_ROOT_USERNAME=rootuser
          - MONGO_INITDB_ROOT_PASSWORD=rootpass
    mongo-express:
        image: mongo-express
        container_name: mongo-express
        restart: always
        ports:
          - 8081:8081
        environment:
          - ME_CONFIG_MONGODB_ADMINUSERNAME=rootuser
          - ME_CONFIG_MONGODB_ADMINPASSWORD=rootpass
          - ME_CONFIG_MONGODB_SERVER=mongodb
volumes:
    data: {}

networks:
    default:
        name: mongodb_network 
EN

回答 1

Stack Overflow用户

发布于 2021-07-04 02:26:36

在MongoDB中,您可以在任何您想要的数据库中创建用户帐户。例如,我可以在数据库'MyDatabase1‘中创建一个名为'JohnDoe’的用户帐户,在数据库'MyDatabase2‘中创建另一个名为'JohnDoe’的帐户。这是两个不同的账户。您可以在数据库连接字符串中指定授权数据库。由于这一特性,它可能会变得令人困惑。因此,它已经成为在名为“admin”的单个数据库中创建数据库用户的标准和推荐方法。通过将用户添加到单个数据库,可以更容易地进行管理。

在这篇文章中,您没有标识/指定哪个数据库是用户“rootuser”的授权数据库,连接信息似乎也不包含这样的概念。我怀疑您的用户是在数据库中定义的,但当您尝试连接时,它正在查看临时数据库,但找不到该用户。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68238806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档