2017-07-07 1 views
1

I'am à partir de l'atlas MongoDB et je tente de se connecter mon Laravel/jenssegers projet au cluster i config ma conf/base de donnéesConnect Laravel jenssegers Atlas MongoDB groupent

'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 
    ] 
    ], 

Et mon dossier .env

DB_HOST="xxxx-shard-00-00-uggj0.mongodb.net" 
DB_PORT=27017 
DB_DATABASE=xxx 
DB_USERNAME=xxx 
DB_PASSWORD=xxx 

et je reçois cette erreur

Aucun serveur trouvé approprié (serverSelectionTryOnce set): [a fermé la connexion d'appel ismaster sur 'xxxx-shard-00-00-uggj0.mongodb.net:27017'

Je conecte à froid avec Mongodb Compass sans problème.

Mon Atlas La liste blanche IP est ouverte (0.0.0.0/0).

Ai-je raté quelque chose?

+0

Vous avez besoin de la chaîne de connexion complète d'Atlas, contenant tous les noeuds du jeu de réplicas. Aussi, en aparté: avec tous les récents hacks mongodb, et le fait qu'Atlas installe une liste blanche IP obligatoire, je suis surpris que vous l'ayez simplement ouvert à tout le trafic. –

+0

Où dois-je mettre la chaîne de l'atlas? Eh bien, j'essaie d'abord d'obtenir la connexion, puis de sécuriser le cluster –

+0

Essayez de mettre la chaîne hôte entière dans 'DB_HOST' - rappelez-vous, chaque déploiement Atlas est sur un ensemble de réplicas - vous avez besoin de tous les hôtes. –

Répondre

3

Dans Laravel, utilisez la clé 'dsn' dans config/database.php comme indiqué ci-dessous pour indiquer l'URL complète du cluster.

'mongodb_conn' => [ 
     'driver' => 'mongodb', 
     'dsn'=>'mongodb://username:[email protected],host2/database?ssl=true&replicaSet=replicaSet&authSource=admin', 
     'database' => 'my_data', 
    ]