我在我的服務器上有一個正在運行的MongoDB auth=true
。不能用php連接到一個mongodb數據庫用戶
如果我登錄到我的管理員用戶(從管理數據庫),沒有問題來獲取數據。
<?php
$connection = new Mongo("mongodb://admin:[email protected]");
$db = $connection->selectDB("mydb");
$collection = $db->selectCollection("user");
var_dump($collection->findOne());
?>
,但如果我通過
$connection = new Mongo("mongodb://mydbadmin:[email protected]: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 .....
好笑,我做編輯,當你寫你的答案。關於__construct文檔。 – Martin
好的,你的答案完美無缺。我只是想知道爲什麼我的編輯不起作用。任何想法 ? – Martin
@Martin我會做出一個hap的冒險猜測,並說你試圖用db管理員憑證直接連接到mydb,而不是那些與db相關的憑證。這裏是一個例子:http://www.mongodb.org/display/DOCS/Security+and+Authentication#SecurityandAuthentication-Logginginasanadminuser我相信你在那裏嘗試過後者。 – Sammaye