mongodb-golang 权限验证报错:SASL authentication step: Authentication failed

  • 起因
    1,今天在将服务查询db从mysql迁移至mongodb的时候,发现报错如下:

    {"level":"error","time":"2019-06-27T16:54:31.710+0800","caller":"***.go:151","msg":"auth error: sasl conversation error: unable to authenticate using mechanism \"SCRAM-SHA-256\": (AuthenticationFailed) Authentication failed.","app":"***,"version":1}
    

    重点报错信息如下:auth error: sasl conversation error

  • 解决方案
    1,首先尝试了在Google进行搜索,Stack Overflow上给出的答案是检查我们用户名,账号以及账号和密码(未解决)
    2,在GitHub发现哥们遇到和我一样的问题,如下图:
    定位原因:报错可能是因为密码中含有特殊字符所致
    mongodb-golang 权限验证报错:SASL authentication step: Authentication failed_第1张图片
    3,寻找解决方案,发现在golang的官方连接mongodb的选项中并没有一个选项可以对特殊字符进行处理
    4,最后解决方案如下

  • 将密码中的特殊字符直接替换成URI编码后的字符,避免golang在构建mongodb连接的时候被特殊字符所干扰

  • 替换表格如连接url替换表格-来源CSDN

你可能感兴趣的:(golang,mongodb)