在Google云上访问MongoDB实例

在Google云上访问MongoDB实例,mongodb,google-cloud-platform,Mongodb,Google Cloud Platform,我使用点击部署功能在Google云上设置了一个MongoDB实例。我一直在尝试使用命令行从另一个Ubuntu GCP实例连接到服务器。然而,我似乎不能 我添加了一个防火墙规则,允许我的MongoDB实例在端口27017上侦听。我用了说明书 gcloud compute firewall-rules create default-allow-mongo \ --allow tcp:27017 \ --source-ranges 0.0.0.0/0 \ --target

我使用点击部署功能在Google云上设置了一个MongoDB实例。我一直在尝试使用命令行从另一个Ubuntu GCP实例连接到服务器。然而,我似乎不能

我添加了一个防火墙规则,允许我的MongoDB实例在端口27017上侦听。我用了说明书

gcloud compute firewall-rules create default-allow-mongo \ --allow tcp:27017 \ --source-ranges 0.0.0.0/0 \ --target-tags mongodb \ --description "Allow mongodb access to all IPs" 我不断地发现这个错误:

pymongo.errors.ServerSelectionTimeoutError: X.X.X.X:27017: timed out 
如果有人能帮我,我会非常感激的


谢谢

问题已经解决

我做了三件事:

(1) 使用以下命令将MongoDB实例标记添加到GCP实例标记:

gcloud compute instances add-tags example-instance --tags tag-1,tag-2 gcloud计算实例添加标记示例实例--tags tag-1,tag-2 (2) 我为MongoDB实例分配了很少的空间。我把它从10GB增加到100GB

(3) 在mongo.conf文件中,更改bindIP并包括MongoDB实例的内部IP,而不是您试图从中访问的GCP实例的内部IP

这是一个很好的参考:

client =  MongoClient('mongodb://username:password@X.X.X.X:27017')
# X.X.X.X = external IP of mongoDB instance

mydb = client['test2']  
posts = mydb.posts
data = {}
data['id'] = 1
posts.insert(data)
pymongo.errors.ServerSelectionTimeoutError: X.X.X.X:27017: timed out 
gcloud compute instances add-tags example-instance --tags tag-1,tag-2