Cloudcontrol没有MongoDB访问权限

时间:2013-06-08 22:06:23

标签: php mongodb cloudcontrol

我最近发现了cloudcontrol并想写一个小的mongoDB应用程序来存储一些图像。我启用了免费的插件mongolab.free并按照文档设置了连接。

$credfile = file_get_contents($_ENV['CRED_FILE'], false);
$credentials = json_decode($credfile, true);
$uri = $credentials["MONGOLAB"]["MONGOLAB_URI"];
$m = new Mongo($uri);
$db = $m->selectDB('test');

问题是以下行不起作用,因为我“需要登录”

$db = $m->selectDB('test');

如果我尝试通过listDBs()列出所有可用的数据库,我会收到相同的错误“需要登录”

即使通过终端进行连接,连接也会建立相同的“需要登录”警告。

我一直试图解决这个问题,因为我现在已经三天了,但我找不到解决方案:(

希望有人可以帮助我

1 个答案:

答案 0 :(得分:1)

您的数据库名称也在MONGOLAB_URI中定义(其格式为cloudcontrol_<deployment_id>)。因此,您不必明确定义另一个数据库名称(也不能)。

您可以使用

从uri中提取数据库名称
preg_match("#/([^/\?]+)(\?|$)#", $uri, $match);
database = $match[1];