当前位置: 首页 > 知识库问答 >
问题:

访问Google云上的MongoDB实例

薛宜
2023-03-14

我使用点击部署功能在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"

按照Google Cloud Mongo DB外部ip未连接中的指示,我使用

 netstat -an | grep -i listen | grep tcp 

我拿到结果了


tcp        0      0 0.0.0.0:27017           0.0.0.0:*               LISTEN 

我还换了mongod。MongoDB实例上的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 

如果有人能帮我,我会非常感激的。

谢啦

共有1个答案

梁丘飞鸾
2023-03-14

问题已经解决。

我做了三件事:

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

    gcloud compute instances add-tags example-instance --tags tag-1,tag-2

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

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

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

 类似资料:
  • 更新: 案例1:本地机器的mongo上的远程访问是因为我选择的发行版配置为允许远程连接。

  • 问题内容: 我无法在Google Container Engine中使用“应用程序默认凭据”。这些文档说,它们是为App Engine和Compute Engine设计的,但是有人告诉我,它们应该透明地传递给在Container Engine上运行的容器。 这是失败的代码: 失败的错误: 期望Application Default Credentials与Container Engine一起使用是

  • 我有一个google云功能,需要访问Atlas上托管的MongoDB(GCP)。此云功能需要访问GCP外部托管的特定API。出于安全原因,他们需要在防火墙规则上允许云功能的IP地址。 为了启用静态IP地址请求,我创建了一个无服务器VPC连接器并为我的云功能配置了所有出口流量。 配置后,即使我允许所有传入流量(仅用于测试),云功能的mongoDB连接也会失败。 我曾考虑VPC对等以允许云功能访问mo

  • 我有一个使用Firebase身份验证的node.js客户端。现在我想访问谷歌云存储,但是node.js的Firebase SDK不包括GCS。使用@google-云/存储工作,但只有匿名访问。如何将Firebase凭据应用到@google-Cloud/存储,以便在登录用户的上下文中访问GCS?

  • 这是运行命令后发生的情况: 启动:pid=4346 port=27017 dbpath=/var/lib/mongodb/data/db 64位host=era-inspiron-5559 2017-02-12T14:39:18.644+0530 I CONTROL[initandlisten]db版本v3.4.2 2017-02-12T14:39:18.644+0530 I控件[initandl

  • 我试图运行此Java代码,以便列出我的Google Drive中的所有文件: 当我运行代码时,我被重定向到登录页面以输入我的Google的电子邮件凭据。如何跳过此步骤?代码我将完全在后台使用,我需要使用JSON文件中的凭据。