问题描述
我使用头盔在kubernetes上安装了mongodb:
helm install mongo bitnami/mongodb
现在我正尝试使用通过此命令获得的root密码进行连接
# kubectl get secret --namespace default mongo-mongodb -o jsonpath="{.data.mongodb-root-pa
ssword}" | base64 --decode
AXMCSkdNm6
使用root密码和root用户登录,我无法登录。我收到“身份验证失败”错误。在我的mongodb桌面客户端中尝试,也在mongo pod内部尝试:
$ mongo admin --username root --password AXMCSkdNm6
MongoDB shell version v4.4.1
connecting to: mongodb://127.0.0.1:27017/admin?compressors=disabled&gssapiServiceName=mongodb
Error: Authentication failed. :
connect@src/mongo/shell/mongo.js:374:17
@(connect):2:6
exception: connect failed
exiting with code 1
我在做什么错了?
更新:
我设法总是在全新安装的k8s / helm上重现它:
- 第一次安装mongo-身份验证完美
- 通过
helm delete mongo
删除mongo
- 立即安装mongo-身份验证失败
解决方法
使用以下命令。请注意--authenticationDatabase admin
部分
mongo admin --host "mongo-mongodb" --authenticationDatabase admin -u root -p AXMCSkdNm6
authenticationDatabase
指定已创建指定的--username
的身份验证数据库
好的,很长一段时间后我发现了问题...
我删除发行版并创建新发行版后,MongoDB身份验证停止工作。原因是我在两个版本中都使用了相同的持久性存储。因此,当我删除第一个发行版时,数据并没有删除,而当我开始新发行版时,由于使用了先前发行版中的旧数据而感到困惑。
当我在删除发行版时删除永久性存储中的所有数据时,一切正常。