【发布时间】:2011-08-30 09:01:50
【问题描述】:
我是 Amazon EC2 的新手。我一直在尝试从托管 Web 服务器的另一个 EC2 实例插入 Amazon EC2 实例中的 Mongo。
我的代码:
<?php
$m = new Mongo("mongodb://test:test@<ec2 internal ip of MongoDB instance:27017>/mydb");
$db = $m->mydb;
$ac = $db->test_collection;
try {
// In the following line, instead of "save()", if I try to
// access the collection using cursor and then iterate through,
// it fetches the data without any problem.
$ret = $ac->save(array("name"=>"Mouli")); // fails here
echo "All set.";
}
catch(MongoCursorException $e) {
echo "M Error:"; echo $e->getMessage();
}
catch(Exception $e) {
echo "Error:";echo $e->getMessage();
}
几点:
- 如果我尝试使用 Amazon 为我们连接到 MongoDB 实例的公共 ip 从我的开发计算机运行,上述代码完全可以正常工作。
- 另外,尝试了来自具有公共和内部 IP 的 Web 服务器 EC2 实例的相同代码;读取在这两种情况下都有效,但保存失败。
安全组中的 27017 端口已更新。
不确定是否需要注意从另一个 EC2 实例写入数据库的任何其他特定设置,因为读取在该场景下工作正常。
非常感谢您的帮助。
【问题讨论】: