簡體   English   中英

使用 MAMP 無法訪問 MongoDB 副本集

[英]Unreachable MongoDB replica set using MAMP

我在 AWS EC2 上運行三個遠程實例副本集,並在端口 27017 和 ICMP 上為我的 IP 打開了安全組(防火牆)。

我的開發環境是在 Mac OS X 上使用 PHP 5.6.2 的 MAMP。在 PHP 測試文件中新建 MongoClient 時,我提供了一個連接字符串:

mongodb://52.68.25.131:27017,52.68.29.231:27017,52.68.50.99:27017/?replicaSet=rs0

錯誤顯示:

MongoConnectionException:找不到候選服務器由 MongoConnectionException 引起:MongoClient::__construct(): php_network_getaddresses: getaddrinfo failed: nodename or servname provided, or not known

仍然無法連接到副本集。 以下是我的副本集的狀態。


rs0:PRIMARY> rs.status()

{
    "set": "rs0",
    "date": ISODate("2015-04-09T12:24:15.195Z"),
    "myState": 1,
    "members": [
    {
        "_id": 0,
        "name": "ip-172-30-0-126:27017",
        "health": 1,
        "state": 1,
        "stateStr": "PRIMARY",
        "uptime": 4714,
        "optime": Timestamp(1428578838,
        1),
        "optimeDate": ISODate("2015-04-09T11:27:18Z"),
        "electionTime": Timestamp(1428578787,
        1),
        "electionDate": ISODate("2015-04-09T11:26:27Z"),
        "configVersion": 3,
        "self": true
    },
    {
        "_id": 1,
        "name": "172.30.2.133:27017",
        "health": 1,
        "state": 2,
        "stateStr": "SECONDARY",
        "uptime": 3467,
        "optime": Timestamp(1428578838,
        1),
        "optimeDate": ISODate("2015-04-09T11:27:18Z"),
        "lastHeartbeat": ISODate("2015-04-09T12:24:14.067Z"),
        "lastHeartbeatRecv": ISODate("2015-04-09T12:24:14.821Z"),
        "pingMs": 2,
        "syncingTo": "ip-172-30-0-126:27017",
        "configVersion": 3
    },
    {
        "_id": 2,
        "name": "172.30.2.132:27017",
        "health": 1,
        "state": 2,
        "stateStr": "SECONDARY",
        "uptime": 3414,
        "optime": Timestamp(1428578838,
        1),
        "optimeDate": ISODate("2015-04-09T11:27:18Z"),
        "lastHeartbeat": ISODate("2015-04-09T12:24:13.821Z"),
        "lastHeartbeatRecv": ISODate("2015-04-09T12:24:13.818Z"),
        "pingMs": 2,
        "syncingTo": "172.30.2.133:27017",
        "configVersion": 3
    }
    ],
    "ok": 1

將 EIP(彈性 IP)分配給所有三個實例以獲取三個公共 DNS 並將它們用作副本集的新配置。

從主節點rs.reconfig(<new-setting>) ,它就像一個魅力。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM