【问题标题】:Accessing MongoDB instance on Google Cloud访问 Google Cloud 上的 MongoDB 实例
【发布时间】:2016-06-20 20:03:07
【问题描述】:

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

我添加了一条防火墙规则,以允许我的 MongoDB 实例侦听端口 27017。我使用了指令

gcloud 计算防火墙规则创建默认允许蒙戈\ --允许 tcp:27017 \ --源范围 0.0.0.0/0 \ --target-tags mongodb \ --description "允许 mongodb 访问所有 IP"

按照Google Cloud Mongo DB external ip not connecting 的指示,我使用

进行了检查
 netstat -an | grep -我听 | grep tcp 

我得到了结果

tcp 0 0 0.0.0.0:27017 0.0.0.0:* 听

我还更改了 MongoDB 实例上的 mongod.conf 文件。我已将 GCP 实例的内部 IP 添加到 bindIP。

这是我用来连接 MongoDB 客户端的代码:

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 

如果有人可以帮助我,我将不胜感激。

谢谢

【问题讨论】:

    标签: mongodb google-cloud-platform


    【解决方案1】:

    问题已解决。

    我做了三件事:

    (1) 将 MongoDB 实例标签添加到 GCP 实例标签中:

    gcloud 计算实例 add-tags example-instance --tags tag-1,tag-2

    (2) 我为 MongoDB 实例分配了很少的空间。我将它从 10 GB 增加到 100 GB。

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

    这是一个很好的参考:http://www.mkyong.com/mongodb/mongodb-allow-remote-access/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-08
      • 1970-01-01
      • 1970-01-01
      • 2020-10-23
      • 1970-01-01
      • 1970-01-01
      • 2020-11-20
      相关资源
      最近更新 更多