Tai*_*dra 2 azure bitnami mongodb azure-virtual-machine azure-virtual-network
我在 Azure 上使用 MongoDB 和复制(bitnami)。
我创建了三个 mongodb 节点(1 个主节点、1 个辅助节点和 1 个仲裁节点)。当我尝试连接 MongoDB 连接 URI 时(mongodb://username:password@ip01:27017,ip02:27017,ip03:27017/?readPreference=primary&replicaSet=replicaset) ,它给了我错误,就像pymongo.errors.ServerSelectionTimeoutError: 10.0.0.5:27017: timed out,10.0.0.6:27017: [Errno 113] No route to host,10.0.0.4:27017: timed out,10.0.0.7:27017: timed out
我更喜欢这个官方文档 (Bitnami)作为连接 url。
connectionString = "mongodb://root:Root123@*.*.*.*:27017,*.*.*.*:27017,*.*.*.*:27017/?replicaSet=replicaset"
client= MongoClient(connectionString)
db = client['mongo_collection']
data = db.xyz.find({"x": 10})
for d in data:
print d
Run Code Online (Sandbox Code Playgroud)
根据您提供的官方文件。
确保应用程序能够使用其公共或私有 IP 地址连接到每个群集节点。为了确保连接,您有两种选择:
将应用程序托管在与 MongoDB 集群相同的网络中,以便它可以使用其私有 IP 地址来寻址每个节点。这是生产环境的推荐配置。将应用程序托管在不同的网络中,并使用适当的防火墙规则将公共 IP 地址分配给群集节点(如果默认情况下尚未分配),以便应用程序可以使用其公共 IP 地址来寻址每个节点。不建议在生产环境中使用此配置。
因此,如果您在同一个 Azure 虚拟网络中进行测试,则可以使用私有 IP(例如 10.0.0.6)。我在我的实验室进行测试,我在这个例子中使用 python 。
import pymongo
client = pymongo.MongoClient("mongodb://root:<passsword>@10.0.0.6:27017,10.0.0.4:27017,10.0.0.5:27017/?replicaSet=replicaset")
db = client.test
>>> db.name
u'test'
>>> db.my_collection
Collection(Database(MongoClient(host=['10.0.0.5:27017', '10.0.0.6:27017', '10.0.0.4:27017'], document_class=dict, tz_aware=False, connect=True, replicaset='replicaset'), u'test'), u'my_collection')
>>> db.my_collection.insert_one({"x": 10}).inserted_id
ObjectId('5987cc0b9e90d52dd1860ac3')
Run Code Online (Sandbox Code Playgroud)
更新:
如果你想连接 mongodb 节点,你应该需要 ping 私有 IP。这是一种设计行为。
如果您想从应用程序或本地使用 mongodb,则需要创建站点到站点 VPN 连接或点到站点 VPN 连接。
| 归档时间: |
|
| 查看次数: |
12556 次 |
| 最近记录: |