我使用点击部署功能在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)使用以下方式将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文件中的凭据。