【问题标题】:Authentication Failed when Lumen is connected to MongoDB AtlasLumen连接MongoDB Atlas时认证失败
【发布时间】:2021-04-27 15:52:39
【问题描述】:

我是 MongoDB Atlas 的新手,无法将 Lumen 与 mongoDB atlas 集群连接起来。我收到的错误消息是身份验证失败。

我用来连接的代码如下:

'mongodb_atlas' => [
      'driver'   => 'mongodb',
      'dsn'      => 'mongodb+srv://myusername:mypassword@mycluster.99xxx.mongodb.net/mydbname?retryWrites=true&w=majority',
      'database' => 'mydbname',
    ]

即使我在 dsn 中输入的用户名和密码与 MongoDB Atlas 中的匹配。我的代码有问题吗?解决方案如何?如果有人能提供帮助,我将不胜感激。

注意:

Lumen 我用的是 8.x 版,PHP 8.x 版

【问题讨论】:

    标签: php laravel mongodb lumen mongodb-atlas


    【解决方案1】:

    我假设您正在使用jenssegers/laravel-mongodb 包连接到 MongoDB。

    您可以在MongoDB docs 中查看独立共享集群副本集的 MongoDB DSN 结构。

    要连接到 MongoDB Atlas,dsn 的构造如下

    'mongodb_conn' => [
      'driver' => 'mongodb',
      'dsn'=>'mongodb://username:password@host1,host2/defaultauthdb?ssl=true&replicaSet=replicaSet&authSource=admin',
      'database' => 'my_data',
    ]
    

    您缺少ssl=true 参数,但这需要您的服务器支持。所以请注意这一点。

    我知道您正在使用 +srv 来使用 TLS/SSL 连接,但也许上面的其他格式效果更好。

    【讨论】:

      猜你喜欢
      • 2021-01-18
      • 1970-01-01
      • 2020-01-29
      • 1970-01-01
      • 2021-02-14
      • 2018-06-13
      • 2018-01-16
      • 1970-01-01
      • 2020-08-16
      相关资源
      最近更新 更多