Rockmongo连接远程mongodb

这里的远程mongodb就以mongoHQ为例,就是说你想使用Rockmongo连接mongoHQ来进行管理。

mongoHQ

注明:测试环境是Ubuntu14.04 64bit / Rockmongo v1.1.3 / MongoDB v2.6.5

进入Rockmongo安装的根目录下,通常在/var/www/rockmongo路径下。找到config.php文件并打开,在文件下面添加如下几行配置代码:

/**
 * This is the configuration  for remote mongodb
 */
$MONGO["servers"][$i]["mongo_name"] = "The name of mongodb"; // 随便自己命名,显示在rockmongo的db昵称,如: mongoHQ-helloworld
$MONGO["servers"][$i]["mongo_host"] = "The host of mongodb"; // 远程mongodb服务器的主域名,如:troup.mongohq.com
$MONGO["servers"][$i]["mongo_port"] = "The port of mongodb"; // 远程mongodb服务器提供的端口,如37017
$MONGO["servers"][$i]["mongo_user"] = "The username of mongodb"; // 拥有权限操作该db的用户名,如:pigerla
$MONGO["servers"][$i]["mongo_pass"] = "The password of mongodb"; // 拥有权限操作该db的用户密码,如:xxxxxx
$MONGO["servers"][$i]["mongo_db"] = "The database's name of mongodb"; // 数据库的名称,如:helloworld
$MONGO["servers"][$i]["mongo_auth"] = false; // 当值为false时,表示rockmongo使用这里的配置去连接远程mongodb,否则,只能在rockmongo登录界面输入以上信息进行登录
$MONGO["servers"][$i]["control_users"]["admin"] = "admin"; // 当mongo_auth为false时,这设置才有效,表示在rockmongo登录界面,用户名为admin,密码为
admin,这也是默认配置。
$i ++;

更多配置看官方文档https://code.google.com/p/rock-php/wiki/configuration

重新来到Rockmongo的登录节目,选择自己命名的远程db昵称,然后输入帐号和密码都为admin,登录进去若没有问题,则连接mongoHQ成功;若连接报错如下:

Execute failed:unauthorized
function (){ return db.getCollectionNames(); }

报这个错的原因主要是你没有最高权限,而只是以用户的身份对db进行连接操作而已。想fix这个报错,请继续往下看。

从rockmongo根目录出发,进入app/model目录,打开MDb.php,找到31行,把

$names = self::exec($db, 'function (){ return db.getCollectionNames(); }');

注释掉,改为:

$names = $db->getCollectionNames();

如下截图,然后保存退出即可。

mdp

重新登录Rockmongo,则会连接成功了。

Spy 07 December 2014