3

私は jenssegers/laravel-mongodb を使用しています

フレームワークを使用して接続できないように見える問題が発生していますが、簡単なテスト スクリプトを使用すると正常に接続できます。

私が書いた簡単な接続スクリプト:

<?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);

それを実行すると、

["OK"]=> 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 で十分ではないでしょうか?

ありがとう

4

0 に答える 0