2017-11-30 11 views
0

さて、MongoDB Atlasにアカウントを設定してクラスタを作成しました。 これらの詳細の助けを借りて、mongoシェルを使用してサーバーに接続しました。 JSONファイルを正常にインポートしました。クラスタに接続した後(Mongoコンソールのみ)、コレクションからデータを取得してクエリを取得できます。未知のMongoDBドライバ - 致命的なエラーが不明です

問題は、私はデータを取得し、表示するために私のPHPファイル内の接続URLを使用する場合、私はそうすることができませんで、それは

Fatal error: Uncaught MongoDB\Driver\Exception\AuthenticationException: Authentication failed. in E:\XAMPP\htdocs\mongoDB\MongoAutoLoad\mongodb\mongodb\src\Operation\Find.php:280 Stack trace: #0 E:\XAMPP\htdocs\mongoDB\MongoAutoLoad\mongodb\mongodb\src\Operation\Find.php(280): MongoDB\Driver\Server->executeQuery('test.bf', Object(MongoDB\Driver\Query), Object(MongoDB\Driver\ReadPreference))

1 E:\XAMPP\htdocs\mongoDB\MongoAutoLoad\mongodb\mongodb\src\Collection.php(527): MongoDB\Operation\Find->execute(Object(MongoDB\Driver\Server)) #2 E:\XAMPP\htdocs\mongoDB\bFreidan\testCluster.php(8): MongoDB\Collection->find() #3 {main} thrown in E:\XAMPP\htdocs\mongoDB\bFreidan\MongoAutoLoad\mongodb\mongodb\src\Operation\Find.php on line 280

私に致命的なエラー - を与えているたびにFind.phpですコレクションデータを取得して表示するためのPHPライブラリコードです。何が問題なの?私は私の地元のMongoDBに

それを実行していた場合

、このコードは絶対に正常に動作していることに注意してくださいここに私のPHPコードです -

<?PHP 
require 'MongoAutoLoad/autoload.php'; // include Composer's autoloader 
$client = new MongoDB\Client(
    'mongodb://<ClusterUsername>:<ClusterPassword>@cluster0-shard-00-00-91fmq.mongodb.net:27017,cluster0-shard-00-01-91fmq.mongodb.net:27017,cluster0-shard-00-02-91fmq.mongodb.net:27017/test?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin 
'); 

$collection = $client->test->bf; 
$result = $collection->find([ 'name' => $name, 'brewery' => $brewery ]); 

foreach ($result as $entry) { 
    echo $entry['_id'], ': ', $entry['name'], "<br>"; //Print with ID 
} 
?> 
+0

「Mongo shell」から 'MongoDB Atlas'に接続できますが、' Application'ではできません。 –

+1

はい、今xamppでホストされているアプリケーションからです。 –

答えて

0

は、2つの可能な問題はここにあります。

まず、PHPドライバがMongoDBサーバーのバージョンと互換性があることを確認してください。詳細については、PHP driver compatibility tableを参照してください。

あなたはコマンドの下に使用してのMongoDB PHPドライバのバージョンを確認することができます。

php --ri mongodb | grep version

別の可能性は、あなたが間違った/符号化されていないパスワードを送信しているということです。パスワードに特殊文字(@:または%)が含まれている場合は、パスワードをURIにエンコードする必要があります。詳細については、MongoDB\Driver\Manager::__construct()およびMongoDB\Client::__construct()も参照してください。

関連する問題