我正在尝试使用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看起来像这样:
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 发布于 2021-07-04 02:26:36
在MongoDB中,您可以在任何您想要的数据库中创建用户帐户。例如,我可以在数据库'MyDatabase1‘中创建一个名为'JohnDoe’的用户帐户,在数据库'MyDatabase2‘中创建另一个名为'JohnDoe’的帐户。这是两个不同的账户。您可以在数据库连接字符串中指定授权数据库。由于这一特性,它可能会变得令人困惑。因此,它已经成为在名为“admin”的单个数据库中创建数据库用户的标准和推荐方法。通过将用户添加到单个数据库,可以更容易地进行管理。
在这篇文章中,您没有标识/指定哪个数据库是用户“rootuser”的授权数据库,连接信息似乎也不包含这样的概念。我怀疑您的用户是在数据库中定义的,但当您尝试连接时,它正在查看临时数据库,但找不到该用户。
https://stackoverflow.com/questions/68238806
复制相似问题