我可以使用amd64/mongo将mongo容器版本4.X和5.X与以下代码连接
auth := options.Credential{
AuthSource: admin,
Username: userName,
Password: pass,
}
opts := options.Client().ApplyURI(URI).SetAuth(auth).SetTLSConfig(&config)
client, err := mongo.Connect(ctx, opts)
但是当我尝试将容器从amd64/mongo升级到版本6.0.2时
它失败,并显示以下错误
:Unable to connect to thedatabase :connection() error occurred during connection handshake: auth error: sasl conversation error: unable to authenticate using mechanism "SCRAM-SHA-1": (AuthenticationFailed) Authentication failed.
我认为默认情况下它会尝试选择SCRAM-SHA-1
我是否需要在mongo运行脚本文件中设置一个mongoDB服务器param,如下所示?
--authenticationMechanisms=SCRAM-SHA-1
所有我试图做的是连接到数据库,并使用下面的代码更改管理员和数据库密码,不确定即使这是贬值现在在mongo版本6.0.2
res := struct{ Ok int }{}
opts := options.RunCmd().SetReadPreference(readpref.Primary())
command := bson.D{{"updateUser", usrName}, {"pwd", pass}}
err = client.Database(db).RunCommand(context.TODO(), command, opts).Decode(&res)
不知道我在哪里犯了错误,错误信息不是直接向前的。这里有人能帮助我吗?
1条答案
按热度按时间nxagd54h1#
所以能够解决这个问题,问题是我的脚本使用
mongo
,但在最新的mongo版本6.0
中被删除,所以我使用mongosh
,当我尝试初始化mongo容器时,它工作。https://www.mongodb.com/docs/mongodb-shell/