Amazon EC2上的Mongo插入失败

时间:2011-08-30 09:01:51

标签: php mongodb

我是亚马逊EC2的新手。我一直在尝试从另一个承载Web服务器的EC2实例插入到Amazon的Amazon EC2实例中。

我的代码:

<?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();
  }

几点:

  1. 如果我尝试使用Amazon发给我们连接到MongoDB实例的公共IP从我的开发机器运行,上面的代码就可以正常工作了。
  2. 此外,尝试使用公共和内部IP从Web服务器EC2实例获取相同的代码; read在两种情况下都有效,但保存失败。
  3. 端口27017已在安全组中更新。

    不确定是否需要处理从另一个EC2实例写入数据库的任何其他特定设置,因为该方案的读取工作正常。

    非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

解决!不幸的是,这是由于PHP mongo客户端1.2.3中引入了一个错误。升级到1.2.4后,它没有任何问题。