【问题标题】:MongoDb Compass: Not able to connect using standard connection stringMongoDb Compass:无法使用标准连接字符串进行连接
【发布时间】:2020-10-20 03:44:19
【问题描述】:

我有一个托管在 EC2 实例上的 mongodb。安全组允许端口 27017,在 mongo.conf 中,端口绑定设置为 0.0.0.0。我可以在我的机器上使用 mongo CLI 连接到这个 mongo 实例,所以这意味着服务器是可访问的并且端口/IP 绑定不是问题。但是,我可以使用我的 MongoDb Compass 应用程序进行连接。它给了我这个错误:

身份验证失败。

这是我的连接字符串的样子:

mongodb://myuser:mypwd@my-ec2-ip:27017/myDatabase

这与我通过机器上的 mongo CLI 连接时使用的连接字符串相同:

mongo "mongodb://myuser:mypwd@my-ec2-ip:27017/myDatabase" 这行得通。我做错了什么?

【问题讨论】:

  • 用户名和密码是否正确转义了所有必须转义的字符?
  • 另外,请阅读服务器日志以了解身份验证失败的原因。
  • 很可能是因为您的密码包含特殊字符。
  • @D.SM 是的,密码只包含 a-z 和一些数字。
  • 在这种情况下请查阅服务器日志。

标签: mongodb mongodb-compass


【解决方案1】:

Mongodb compass 默认以 admin 作为数据库。因此,如果您想连接 admin 以外的其他数据库,则必须使用 mongodb compass 连接字符串,例如:

mongodb://myuser:mypwd@my-ec2-ip:27017/?authSource=myDatabase

【讨论】:

  • 像魅力一样工作
【解决方案2】:

原来 compass 没有从我的连接字符串中获取身份验证数据库:mongodb://myuser:mypwd@my-ec2-ip:27017/myDatabasemyDatabase 是我试图连接到购买指南针的数据库,它试图根据默认的 admin 数据库对我进行身份验证。因此,在“单独填写连接字段”部分中,我将“身份验证数据库”手动设置为myDatabse,并且成功了。

【讨论】:

    【解决方案3】:

    在安全性 -> 数据库访问下,将 数据库用户权限 更改为 读取和写入任何数据库

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-19
      • 2017-07-23
      • 2020-08-07
      • 1970-01-01
      • 2012-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多