3

MongoDB データベースを単一ノードのレプリカ セットとして構成しました。API経由でアクセスでき(データを書き込む)、シェルからもアクセスできます。

rs0:PRIMARY> rs.status()
{
    "set" : "rs0",
    "date" : ISODate("2017-12-18T14:37:13.487Z"),
    "myState" : 1,
    "term" : NumberLong(1),
    "heartbeatIntervalMillis" : NumberLong(2000),
    "optimes" : {
            "lastCommittedOpTime" : {
                    "ts" : Timestamp(1513607826, 1),
                    "t" : NumberLong(1)
            },
            "readConcernMajorityOpTime" : {
                    "ts" : Timestamp(1513607826, 1),
                    "t" : NumberLong(1)
            },
            "appliedOpTime" : {
                    "ts" : Timestamp(1513607826, 1),
                    "t" : NumberLong(1)
            },
            "durableOpTime" : {
                    "ts" : Timestamp(1513607826, 1),
                    "t" : NumberLong(1)
            }
    },
    "members" : [
            {
                    "_id" : 0,
                    "name" : "srvlx02:27017",
                    "health" : 1,
                    "state" : 1,
                    "stateStr" : "PRIMARY",
                    "uptime" : 14633,
                    "optime" : {
                            "ts" : Timestamp(1513607826, 1),
                            "t" : NumberLong(1)
                    },
                    "optimeDate" : ISODate("2017-12-18T14:37:06Z"),
                    "electionTime" : Timestamp(1513593354, 2),
                    "electionDate" : ISODate("2017-12-18T10:35:54Z"),
                    "configVersion" : 1,
                    "self" : true
            }
    ],
    "ok" : 1,
    "operationTime" : Timestamp(1513607826, 1),
    "$clusterTime" : {
            "clusterTime" : Timestamp(1513607826, 1),
            "signature" : {
                    "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
                    "keyId" : NumberLong(0)
            }
    }
}
rs0:PRIMARY> rs.conf()
{
    "_id" : "rs0",
    "version" : 1,
    "protocolVersion" : NumberLong(1),
    "members" : [
            {
                    "_id" : 0,
                    "host" : "srvlx02:27017",
                    "arbiterOnly" : false,
                    "buildIndexes" : true,
                    "hidden" : false,
                    "priority" : 1,
                    "tags" : {

                    },
                    "slaveDelay" : NumberLong(0),
                    "votes" : 1
            }
    ],
    "settings" : {
            "chainingAllowed" : true,
            "heartbeatIntervalMillis" : 2000,
            "heartbeatTimeoutSecs" : 10,
            "electionTimeoutMillis" : 10000,
            "catchUpTimeoutMillis" : -1,
            "catchUpTakeoverDelayMillis" : 30000,
            "getLastErrorModes" : {

            },
            "getLastErrorDefaults" : {
                    "w" : 1,
                    "wtimeout" : 0
            },
            "replicaSetId" : ObjectId("5a379a0abe6cad70a6b66c7c")
    }
}
rs0:PRIMARY>

ただし、Compass 経由で接続すると、トポロジが UNKNOWN として表示され、コレクション/データベースの変更/削除が許可されません。

ここに画像の説明を入力

何が問題なのですか?Compass がトポロジーを判別できないのはなぜですか? 単一ノードのレプリカ セットは、サポートされていない特殊なケースですか?

ヒントをありがとう!

MongoDB バージョン: 3.6.0

MongoDB shell version v3.6.0
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.0

コンパスのバージョン: 1.11.1 Community Edition

ここに画像の説明を入力

4

4 に答える 4

5

他の誰かが同じ問題を抱えている場合、同じ問題に関する MongoDB Jira のバグ レポートを見つけました: https://jira.mongodb.org/browse/COMPASS-3264

解決策は、「Replica Set Name」フィールドを空のままにしておくことです。これで問題なく動作します:)

于 2019-06-13T09:22:55.773 に答える
0

パブリックIPが変更されたために発生すると思います.mongodbアトラスをコンパスに接続すると発生します 。ここに画像の説明を入力 して、別のIPを追加してみてください.

于 2021-06-29T12:33:17.147 に答える