2011-08-30 89 views
0

我是亞馬遜EC2的新手。我一直試圖從承載Web服務器的另一個EC2實例的Amazon EC2實例中插入Mongo。Mongo插入在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. 如果我嘗試使用亞馬遜發出我們的公網IP連接到MongoDB的從我的開發機器運行上面的代碼完全相同工作正常實例。
  2. 此外,嘗試使用公共和內部IP的Web服務器EC2實例中的相同代碼;閱讀在這兩種情況下都能奏效,但保存失敗

端口27017已在安全組中更新。

不知道是否有任何其他特定設置需要注意從另一個EC2實例寫入數據庫,因爲讀取對於該場景工作正常。

非常感謝您的幫助。

回答

1

解決!不幸的是,這是由於在PHP mongo客戶端1.2.3中引入了一個錯誤。升級到1.2.4後,它沒有任何問題。