MongoDB PHP auth


MongoDB PHP auth

我是MongoDB的新手。我 2 个月前开始使用它。我决定测试一个网站的日志(用户行为)。起初没有用户名和密码。它就像一个魅力。我使用RockMongo进行管理。然后我创建了用户名和密码并重新启动了服务器。重新启动后,我的脚本无法将数据放入数据库。但是,当我更新RockMongo的设置时,它很烦人,我可以通过RockMongo插入/更新。我在 Ubuntu 10 上使用 MongoDB,并带有 PHP5。我的代码看起来像 这:

    $m = new Mongo();
    $db = $m->testlogs;
    $db->authenticate('username', 'password');

我也不能使用外壳。尝试进行身份验证时,我得到 以下错误:

"$err" : "未经授权的 db:testlogs 锁定类型:-1 客户端:127.0.0.1", "代码" : 10057

任何帮助,不胜感激。

您需要先连接到特定的数据库。仅访问$m->测试日志并不能做到这一点。相反,您需要使用作为第一行:

$m = new Mongo('mongodb://localhost/testlogs');

或者你可以做:

$m = new Mongo('mongodb://username:password@localhost/testlogs');

这允许您删除 ->authenticate() 调用。http://php.net/manual/en/mongodb.authenticate.php 的文档还说:

通常,应使用内置的身份验证 Mongo::__construct() 优先于此方法。如果您进行身份验证 连接时,连接断开并重新连接 会话中,您将重新进行身份验证。如果您手动进行身份验证 使用此方法并且连接断开,您必须调用 重新连接后再次执行方法。