サーバーで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 .....