Lumen连接MongoDB Atlas时认证失败
Posted
技术标签:
【中文标题】Lumen连接MongoDB Atlas时认证失败【英文标题】:Authentication Failed when Lumen is connected to 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 版
【问题讨论】:
【参考方案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 连接,但也许上面的其他格式效果更好。
【讨论】:
以上是关于Lumen连接MongoDB Atlas时认证失败的主要内容,如果未能解决你的问题,请参考以下文章
MongoError:在 mongoDB atlas 中首次连接时无法连接服务
MongoError:在 mongoDB atlas 中首次连接时无法连接服务
C# .Net + MongoDB Atlas 连接字符串 MongoDB.Driver.Legacy 尝试运行客户端时出错
连接错误:我是 Mongodb 的新手,现在在创建与节点 js 的连接到 mongodb atlas 显示以下错误时,我遇到了 mongodb 的问题