当前位置: 首页 > 知识库问答 >
问题:

docker compose的Mongo Express身份验证失败

阚通
2023-03-14

我正在尝试使用docker compose在两个容器中运行mongodb和mongo express。看起来mongodb容器工作正常,但mongo express容器继续退出,代码为0。

我得到的错误是:无法使用connectionString连接到数据库:mongodb://rootuser:rootpass@mongodb:27017/“MongoExpress |(节点:8)未处理Promisejection警告:MongoNetworkError:无法在第一次连接时连接到服务器[mongodb:27017][MongoError:身份验证失败]。

我的docker撰写。yml如下所示:

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 

共有1个答案

周兴朝
2023-03-14

在Monhtml" target="_blank">goDB中,您可以在您希望的任何数据库中创建用户帐户。例如,我可以在数据库“MyDatabase ase1”中创建一个名为“JohnDoe”的用户帐户,并在数据库“MyDatabase ase2”中创建另一个名为“JohnDoe”的帐户。这是两个不同的帐户。您在数据库连接字符串中指定授权数据库。由于此功能,它可能会变得令人困惑。因此,它已成为在名为“admin”的单个数据库中创建数据库用户的标准和推荐方法。通过将用户添加到单个数据库中,更易于管理。

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

 类似资料:
  • Tweepy API请求twitter return me Twitter错误响应:状态代码=401。 这是我的实际代码: 我曾试图用tweepy软件包删除推文,并获得了所有必需的密钥。镊子包装不起作用吗?有人能帮我解决这个问题吗。

  • 我的keytab由以下命令生成: SPN信息 看起来我的keytab没问题。

  • http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.3.xsd“>

  • 问题内容: 尝试使用JavaMail中的NTLM连接到Exchange服务器。我可以连接到SMTP,但不能连接到IMAP。我还可以使用相同的主机/用户名/密码通过OS X Mail.app应用程序进行身份验证,帐户类型=“ IMAP”,端口143,ssl = false,authentication = NTLM,域名=“。 连接代码: 输出: 我尝试通过http://www.oracle.com

  • 我相对来说是JMeter的新手,但是我很难让HTTP Sampler登陆到一个安全的网页上。我认为它需要NTLM认证,所以我使用HTTP授权管理器来传递BlazeMeter指南中指定的凭证 我的授权管理器具有以下值: 基本网址: https:// [测试站点] 用户名: [我的用户名] 密码: [我的密码] 域:与基本网址相同 机制: BASIC_DIGEST 然而,我只是得到一个401错误(见下

  • 尝试访问私有公司 tfs。他们通过向Windows用户(域\登录)授予适当的权限来授予我访问权限。 我可以很好地访问tfs的web界面,浏览存储库和其他东西。 但当我试图逃跑 它失败了 尝试与家用PC没有公司网络的东西 - 同样的错误。 在PowerShell、Git Bash、Clone via VisualStudio中尝试过-同样的错误。 SSH关闭(给定请求超时)。 网络 企业助手试图帮助

  • 我对詹金斯和一个詹金斯奴隶有一个奇怪的问题。我的构建使用Maven发布插件。项目从Subversion存储库中签出。稍后在构建过程中,Maven发布插件尝试向我的项目pom.xml提交一些更改。正是在这里,这个过程有时会在詹金斯奴隶身上失败。每当它失败时,我需要在主服务器上再次运行构建,然后再在Jenkins从服务器上运行。 null

  • 我的用户需要根据他的Git存储库验证他的私钥。它类似于任何DB客户端工具中的“测试连接”按钮。 我在Java使用JSCH进行此验证(我只需要使用SSH连接并告诉连接成功)。下面是我的Java代码 我得到以下例外。 我引用了所有其他SO论坛,给出的解决方案是在相应的服务器中添加公钥。我做到了这一点,并且能够使用SSH命令成功地进行身份验证(如下所述)。但我无法使用JSCH实现同样的效果。请帮忙