4

サーバーでmongodを実行しauth=trueています。

(管理データベースから)管理ユーザーにログインすると、データを取得するのに問題はありません。

<?php
$connection = new Mongo("mongodb://admin:adminpass@127.0.0.1");

$db = $connection->selectDB( "mydb" );
$collection = $db->selectCollection( "user" );
var_dump($collection->findOne());
?>

しかし、最初の行を

$connection = new Mongo("mongodb://mydbadmin:dbadminpass@127.0.0.1:27017");

接続できず、次のようなエラーが発生します。

Fatal error: Uncaught exception 'MongoConnectionException' with message 'Couldn't authenticate with database admin: username [mydbadmin]' in .....

したがって、問題はnew Mongo()、ユーザーを「mydb」データベースではなく管理データベースに接続しようとすることです。接続するデータベースを選択するにはどうすればよいですか?

編集 :

http://php.net/manual/fr/mongo.construct.phpによると、
私はこれを試しました

$login = array("username" => "mydbadmin",
               "password" => "dbadminpass",
               "db" => "mydb",
               "connect" => true
);

$connection = new Mongo("mongodb://localhost", $login);

しかし

Couldn't authenticate with database mydb: username [mydbadmin]' in .....
4

2 に答える 2

3

コンストラクターでdbを指定しない場合、adminデフォルトでデータベースが使用されます(Mongo::__construct-referenceに記載されています)。次のことを試してください。

$connection = new Mongo("mongodb://admin:adminpass@127.0.0.1/mydb");

/mydbPHP-apiが目的のデータベースに接続できるようにするhost-partの後にあることに注意してください。

于 2012-09-21T09:54:01.440 に答える
-1

ur phpドライバーのバージョンとmongodのバージョンを確認してください。両方のバージョンに互換性がある必要があります。例:私の場合、mlab.comでphp 5.3(wamp)とmongod 3.0を使用しています。 ts-vc9-x86

私のためによく働いている

mongo ドライバーの詳細については、このサイトを参照してください

以下のサイトを参照して ください https://docs.mongodb.com/ecosystem/drivers/php/

mongod ドライバーのダウンロードについては、このサイトを参照して ください https://pecl.php.net/package/mongo/1.6.6/windows

ありがとう... Sureshapn.m@gmail.com

于 2016-07-16T12:02:15.097 に答える