簡體   English   中英

如何連接到 mongodb 副本集並通過 php 腳本進行身份驗證?

[英]How can I connect to mongodb replica sets and authenticate by php script?

我使用以下 php 腳本連接到 mongodb 副本集:

$conn = new MongoClient("mongodb://mongodb1:27017,mongodb2:27017/?replicaSet=MyRepSet");

$db = $conn->test;
$collection = $db->items;

$item = array(
    'name' => 'milk',
    'quantity' => 10,
    'price' => 2.50,
    'note' => 'skimmed and extra tasty'
  );

  $collection->insert($item);

 $conn->close();

當我在沒有 --auth 和 --key 的情況下啟動 mongodb 時,這有效

但是,當我使用 --auth 和 --key 啟動 mongodb 副本集並創建一個用戶時,如下所示:

> use test;
> db.addUser("test","123456")

當我再次嘗試使用上述 php 腳本時,出現此錯誤:

Uncaught exception 'MongoCursorException' with message 'mongodb3:27017: not authorized for insert on test.items

如何連接到 mongodb 副本集並通過 php 腳本進行身份驗證?

嘗試這個

$connection = new Mongo("mongodb://test:123456@127.0.0.1:27017/mongodb1/?replicaSet=MyRepSet");

或者如果這不起作用,請嘗試

$conn = new MongoClient("mongodb://test:123456@mongodb1:27017,mongodb2:27017/?replicaSet=MyRepSet");

根據您的提示,我嘗試以下操作:

在 mongodb1 和 mongodb2 上:

use admin;
db.addUser("admin","123456");

編輯php連接腳本:

$conn = new MongoClient("mongodb://admin:123456@mongodb1:27017,mongodb2:27017/?replicaSet=MyRepSet");

有效 !!!! 非常感謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM