docker 连接到mongodb容器版本6.0.2时出错|amd 64/蒙戈

5lhxktic  于 2022-11-28  发布在  Docker
关注(0)|答案(1)|浏览(376)

我可以使用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)

不知道我在哪里犯了错误,错误信息不是直接向前的。这里有人能帮助我吗?

nxagd54h

nxagd54h1#

所以能够解决这个问题,问题是我的脚本使用mongo,但在最新的mongo版本6.0中被删除,所以我使用mongosh,当我尝试初始化mongo容器时,它工作。
https://www.mongodb.com/docs/mongodb-shell/

相关问题