mongodblaravel-5compose-db

Setting up mongodb config in Laravel with Compose.io


Its my first time use compose.io as my mongodb hosting.

I was trying to configure compose.io mongodb with Laravel but ended up this error:

ConnectionTimeoutException in Collection.php line 432:
No suitable servers found (`serverSelectionTryOnce` set)

I was using https://github.com/jenssegers/laravel-mongodb package to add mongodb support to Laravel.

My mongodb config:

   'mongodb' => [
        'driver'   => 'mongodb',
        'host' => ['aws-us-east-1-portal.25.dblayer.com:20020/admin', 'aws-us-east-1-portal.26.dblayer.com:20020/admin'],
        'port'     => env('MONGO_DB_PORT', 27017),
        'database' => env('MONGO_DB_DATABASE'),
        'username' => env('MONGO_DB_USERNAME'),
        'password' => env('MONGO_DB_PASSWORD'),
        'options'  => [
            'ssl' => true,
            'database' => 'admin', // sets the authentication database required by mongo 3
            'replicaSet' => 'set-5939226a8aab5300121d0ef2',
            'readPreference' => 'primary',
        ],
        'driver_options' => [
            'context' => stream_context_create( [
                'ssl' => [
                    'local_cert' =>  base_path('mongo.pem'),
                    'cafile'     =>  base_path('mongo.pem'),
                    'allow_self_signed' => true,
                    'verify_peer'       => false,
                    'verify_peer_name'  => false,
                    'verify_expiry'     => false,
                    'allow_invalid_certificates'  => true
                ]

            ])
        ]
    ]

I am not also sure what is the value for MONGO_REPLICA_SET

Anyone experienced something similar?

Thanks


Solution

  • It works by removing replicaSet option

    Final configuration:

    'mongodb' => [
            'driver'   => 'mongodb',
            'host' => ['aws-us-east-1-portal.25.dblayer.com', 'aws-us-east-1-portal.26.dblayer.com'],
            'port'     => env('MONGO_DB_PORT', 27017),
            'database' => env('MONGO_DB_DATABASE'),
            'username' => env('MONGO_DB_USERNAME'),
            'password' => env('MONGO_DB_PASSWORD'),
            'options'  => [
                'ssl' => true,
                'database' => env('MONGO_DB_DATABASE'), // sets the authentication database required by mongo 3
            ],
            'driver_options' => [
                'context' => stream_context_create( [
                    'ssl' => [
                        'cafile'     =>  base_path('mongo.pem'),
                        'allow_self_signed' => true,
                        'verify_peer'       => false,
                        'verify_peer_name'  => false,
                        'verify_expiry'     => false,
                    ]
    
                ])
            ]
        ]