gpt4 book ai didi

javascript - Docker:MongoDB 初始化脚本无法运行 - 身份验证错误

转载 作者:行者123 更新时间:2023-11-30 19:31:28 25 4
gpt4 key购买 nike

我正在为 MongoDB 容器扩展我的 docker-compose.yml。我想添加一些初始数据。

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

version: '3.1'

services:

mongo:
image: mongo
restart: always
ports:
- 27017:27017
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: root
volumes:
- mongo-data:/data/db:cached
- ./fixtures/mongo_import.js:/docker-entrypoint-initdb.d/mongo_import.js

mongo-express:
image: mongo-express
restart: always
ports:
- 8081:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: root
ME_CONFIG_BASICAUTH_USERNAME: root
ME_CONFIG_BASICAUTH_PASSWORD: root

volumes:
mongo-data:
driver: local

当我运行这个脚本时,我在 mongo 容器日志中收到一个错误,指出用户 root 不存在。

所以我创建了一个 mongo_import.js 脚本,它看起来像这样:

db.auth('root', 'root')

db = db.getSiblingDB('licensing')

db.createUser({
user: 'root',
pwd: 'root',
roles: [
{
role: 'root',
db: 'admin',
},
],
});

这是行不通的。当我转到此容器中的 shell 并运行 mongo mongo_import.js 我得到:

# mongo mongo_import.js
MongoDB shell version v4.0.10
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("b148691b-d585-48e9-9cdd-1d58ad4a4294") }
MongoDB server version: 4.0.10
Error: Authentication failed.
2019-05-31T10:21:36.788+0000 E QUERY [js] Error: couldn't add user: not authorized on licensing to execute command { createUser: "root", pwd: "xxx", roles: [ { role: "root", db: "admin" } ], digestPassword: true, writeConcern: { w: "majority", wtimeout: 600000.0 }, lsid: { id: UUID("b148691b-d585-48e9-9cdd-1d58ad4a4294") }, $db: "licensing" } :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.createUser@src/mongo/shell/db.js:1491:15
@mongo_import.js:5:1
failed to load: mongo_import.js

我做错了什么?

最佳答案

你必须添加

MONGO_INITDB_DATABASE=admin

到你的环境变量。

如果您使用.js 脚本,您必须使用变量MONGO_INITDB_DATABASE 定义授权数据库。

如果不设置该值,脚本将在test数据库中进行验证。

关于javascript - Docker:MongoDB 初始化脚本无法运行 - 身份验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56393343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com