【发布时间】:2017-12-12 06:32:43
【问题描述】:
我从 Mongodb atlas 开始,我尝试将我的 laravel/jenssegers 项目连接到我配置我的 conf/数据库的集群
'mongodb' => [
'driver' => 'mongodb',
'host' => env('DB_HOST'),
'port' => env('DB_PORT', '27017'),
'database' => env('DB_DATABASE'),
'username' => env('DB_USERNAME'),
'password' => env('DB_PASSWORD'),
'options' => [
'database' => 'admin' // sets the authentication database required by mongo 3
]
],
还有我的 .env 文件
DB_HOST="xxxx-shard-00-00-uggj0.mongodb.net"
DB_PORT=27017
DB_DATABASE=xxx
DB_USERNAME=xxx
DB_PASSWORD=xxx
我得到了这个错误
找不到合适的服务器(
serverSelectionTryOnce设置):[连接关闭调用 ismaster on 'xxxx-shard-00-00-uggj0.mongodb.net:27017'
我用 Mongodb Compass 冷连接没有问题。
我的 Atlas Ip 白名单已打开 (0.0.0.0/0)。
我错过了什么吗?
【问题讨论】:
-
您需要来自 Atlas 的整个连接字符串,其中包含所有副本集节点。另外,顺便说一句:由于最近发生的所有 mongodb 黑客攻击,以及 Atlas 设置了强制性 IP 白名单这一事实,我很惊讶您只是将其开放给所有流量。
-
我需要把图集字符串放在哪里?好吧,我先尝试获取连接,然后再保护集群
-
尝试将整个主机字符串放入
DB_HOST- 请记住,每个 Atlas 部署都在一个副本集上 - 您需要所有主机。 -
我得到 >(1/1) AuthenticationException 身份验证失败。但是密码和数据库是正确的。
标签: php mongodb laravel jenssegers-mongodb mongodb-atlas