2017-07-07 1 views
1
MongoDB

Ich bin mit MongoDB Atlas beginnen und ich versuchen, mein Laravel/jenssegers Projekt mit dem Cluster verbinden i Config meine conf/DatenbankConnect Laravel jenssegers Atlas Cluster

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

Und meine .env Datei

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

Und ich bekomme diese Fehlermeldung

keine geeigneten Server gefunden (serverSelectionTryOnce set): [Verbindung geschlossen Aufruf ismaster on 'xxxx-shard-00-00-gugj0.mongodb.net:27017'

Ich kalt Verbindung mit Mongodb Compass ohne Problem.

Mein Atlas Ip Whitelist ist offen (0.0.0.0/0).

Fehle ich etwas?

+0

Sie benötigen die gesamte Verbindungszeichenfolge von Atlas, die alle Replikatknoten enthält. Nebenbei bemerkt: Mit all den aktuellen mongodb-Hacks und der Tatsache, dass Atlas eine obligatorische IP-Whitelist einrichtet, bin ich überrascht, dass Sie es einfach für alle Zugriffe geöffnet haben. –

+0

Wo muss ich die Atlasschnur hinlegen? Nun, ich versuche zuerst eine Verbindung zu erhalten und dann den Cluster zu sichern. –

+0

Versuchen Sie, die gesamte Host-Zeichenkette in 'DB_HOST' zu setzen - denken Sie daran, jede Atlas-Implementierung ist auf einem Replikat-Set - Sie benötigen alle Hosts. –

Antwort

3

In Laravel, verwenden Sie 'dsn' Schlüssel in config/database.php wie unten gezeigt, um die vollständige Cluster-URL zu erwähnen.

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