我的服务器上有一个正在运行的 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 .....