2011-08-30 7 views
0

Amazon EC2를 처음 사용했습니다. 저는 웹 서버를 호스팅하는 다른 EC2 인스턴스의 Amazon EC2 인스턴스에서 Mongo에 삽입하려고했습니다.Mongo Insert가 Amazon EC2에서 실패합니다.

내 코드 :

<?php 
    $m = new Mongo("mongodb://test:[email protected]<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. 내가 MongoDB를 연결하는 아마존이 우리를 발급 한 공인 IP를 사용하여 내 dev에 컴퓨터에서 실행하려고하면 위의 코드는 정확히 잘 작동 예.
  2. 또한 공개 및 내부 IP를 사용하여 웹 서버 EC2 인스턴스에서 동일한 코드를 시도했습니다. 두 경우 모두 읽기가 작동하지만 저장에 실패합니다.

보안 그룹에서 포트 27017이 업데이트되었습니다.

다른 EC2 인스턴스에서 DB에 쓰는 데 필요한 다른 특정 설정이 있는지 여부는 잘 모르겠다. 왜냐하면 읽기가 해당 시나리오에서 잘 작동하기 때문입니다.

귀하의 도움에 감사드립니다.

답변

1

해결! 불행히도 PHP mongo 클라이언트 1.2.3에 도입 된 버그 때문입니다. 1.2.4로 업그레이드 한 후에도 문제없이 작동했습니다.

관련 문제