在下面的minikube部署中创建mongodb,无法通过命令行进行身份验证。
基本上,我只想列出所有数据库,因为我怀疑与mongo-express的连接存在问题。
我使用kubectl exec -it mongodb-deployment-6b46455744-gfkzw -- /bin/bash
执行进入pod,mongo
以启动磁盘db.auth("username", "password")
给出MongoServerError: Authentication failed.
即使printenv
给出了
MONGO_INITDB_ROOT_PASSWORD=password
MONGO_INITDB_ROOT_USERNAME=username
字符串
有帮助吗?
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongodb-deployment
labels:
app: mongodb
spec:
replicas: 1
selector:
matchLabels:
app: mongodb
template:
metadata:
labels:
app: mongodb
spec:
containers:
- name: mongodb
image: mongo
ports:
- containerPort: 27017
env:
- name: MONGO_INITDB_ROOT_USERNAME
valueFrom:
secretKeyRef:
name: mongodb-secret
key: mongo-root-username
- name: MONGO_INITDB_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mongodb-secret
key: mongo-root-password
- name: ME_CONFIG_MONGODB_ENABLE_ADMIN
value: "true"
---
apiVersion: v1
kind: Service
metadata:
name: mongodb-service
spec:
selector:
app: mongodb
ports:
- protocol: TCP
port: 27017
targetPort: 27017
型
2条答案
按热度按时间wbrvyc0a1#
设法连接使用
字符串
从https://docs.mongodb.com/manual/tutorial/authenticate-a-user/#std-label-authentication-auth-as-user和docker hub页面。
eqoofvh92#
我也有同样的问题。
在我的例子中,我正在使用启动命令,并且在部署之间我首先强制执行命令
mongod --bind_ip_all
。由于数据库已在没有--auth
标志的持久卷中创建,因此它没有创建必要的用户条目。你要么需要删除你的持久卷(和部署和pod),并从头开始重新创建它.同时删除启动命令,让它初始化脚本.这样做,只有当你是确定与丢失数据.我猜你没有任何所以去吧.
或者,如果你想保留你的数据,用mongodb打开一个shell到你的pod,然后按照doc手动添加用户https://www.mongodb.com/docs/manual/reference/method/db.createUser/。由于之前没有通过
--auth
标志启用auth,你应该能够在没有凭据的情况下登录。