我正在使用 jenssegers/laravel-mongodb MongoDB Jenssegers
我遇到了一个问题,我似乎无法使用框架进行连接,但使用简单的测试脚本,我可以正常连接。
我写的简单连接脚本:
<?php
$manager = new MongoDB\Driver\Manager("mongodb://user:password@cluster0-shard-00-00-reodz.mongodb.net:27017,cluster0-shard-00-01-reodz.mongodb.net:27017,cluster0-shard-00-02-reodz.mongodb.net:27017/test?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin");//ssl=true
$command = new \MongoDB\Driver\Command(["ping" => 1]);
$cursor = $manager->executeCommand("admin", $command);
$reply = $cursor->toArray()[0];
var_dump($reply);
当我运行它时,我得到
[“确定”]=> int(1)
这是我所期望的,一切都很好。我使用相同的连接字符串设置我的 config/database.php 文件,这是我的 config/database.php 文件:
return [
'default' => env('DB_CONNECTION','mongodb'),
'connections' => [
'mongodb' => [
'driver' => 'mongodb',
'dsn' => env('DB_DSN','mongodb://user:password@cluster0-shard-00-00-reodz.mongodb.net:27017,cluster0-shard-00-01-reodz.mongodb.net:27017,cluster0-shard-00-02-reodz.mongodb.net:27017/test?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin'),
'database' => env('DB_DATABASE'),
]
]
];
.env 文件:
APP_ENV=local
APP_DEBUG=true
APP_KEY=
APP_TIMEZONE=UTC
#DB_CONNECTION=mongodb
#DB_HOST="cluster0-shard-00-00-reodz.mongodb.net"
#DB_PORT=27017
DB_DATABASE="test"
#DB_USERNAME="user"
#DB_PASSWORD="password"
CACHE_DRIVER=file
QUEUE_DRIVER=sync
当我访问与 MongoDB 关联的路由时,我得到:
(1/1) ConnectionTimeoutException 找不到合适的服务器(
serverSelectionTryOnce
设置):[无法解析'user:password@cluster0-shard-00-00-reodz.mongodb.net:27017,cluster0-shard-00-01-reodz.mongodb .net:27017,cluster0-shard-00-02-reodz.mongodb.net:27017/test?ssl=true&replicaset=cluster0-shard-0&authsource=admin']
我会假设问题已本地化到我的 database.php 文件或我的 .env 文件,有人看到错误吗?如果test.php可以连接并返回ping,Lumen不应该很好吗?
感谢:D