我使用以下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");
成功了!!!!非常感谢