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

Google Cloud Mongo DB:外部IP未连接

徐隐水
2023-03-14

我已经使用默认参数在谷歌云上创建了一个现成的MongoDB服务器。他们之间一切正常(有沟通,我可以添加DBs和集合)。但是,我无法在任何外部机器上连接到MongoDB。我在GCP中创建了防火墙规则,允许端口27017上的所有连接(“0.0.0.0./0”)。

我正在运行命令:

giuseppe@ubuntu:~$ mongo --host rs0/104.154.xx.xxx,173.255.xxx.xxx,104.197.xxx.xxx 



giuseppe@ubuntu:~$ mongo --host rs0/104.154.xxx.xxx:27017,173.255.xxx.xxx:27017,104.197.xxx.xxx:27017

我在他们两个身上都犯了同样的错误。我不知道如何解决这个问题。

connecting to: rs0/104.154.41.xxx,173.255.xxx.xxx,104.197.22.xxx:27017/test
2015-03-18T19:47:33.770-0500 starting new replica set monitor for replica set rs0 with seeds 104.154.41.xxx:27017,104.197.22.1xx:27017,xx.255.114.xxx:27017
2015-03-18T19:47:33.770-0500 [ReplicaSetMonitorWatcher] starting
2015-03-18T19:47:34.119-0500 changing hosts to rs0/mongo-db-jff3:27017,mongo-db-vnc4:27017 from rs0/104.154.41.246:27017,1xx.197.22.xxx:27017,173.255.1xx.xx:27017
2015-03-18T19:47:34.493-0500 getaddrinfo("mongo-db-vnc4") failed: Name or service not known
2015-03-18T19:47:34.511-0500 getaddrinfo("mongo-db-jff3") failed: Name or service not known
2015-03-18T19:47:34.512-0500 Error: connect failed to replica set rs0/104.154.xxx.xxx:27017,173.2xx.xxx.68:27017,104.197.22.xxx:27017 at src/mongo/shell/mongo.js:148

编辑:

以下是我的防火墙设置。

共有2个答案

拓拔烨赫
2023-03-14

我认为这里的问题是ReplicaSetMonitorWatcher正在将主机更改为rs0/mongo-db-jff3:27017,其中mongo-db-jff3无法从您的网络访问。您需要将副本集中的主机配置为您可以访问的内容(静态IP或URL)。

https://docs.mongodb.com/manual/tutorial/change-hostnames-in-a-replica-set/

快速示例,mongo进入您的主服务器(如果您想在不停机的情况下完成辅助服务器):

cfg = rs.conf()
cfg.members[0].host = "mongodb0.example.net:27017"
cfg.members[1].host = "mongodb1.example.net:27017"
rs.reconfig(cfg)
艾茂学
2023-03-14

是吗

  • 在Google云控制台中配置防火墙规则

我在这里详细解释了如何向外部世界开放港口。替换为您自己的端口号。

 类似资料:
  • 问题内容: 在同一个数据中心中,我有一个应用程序服务器(客户端),该服务器连接到包含3个节点的沙发基础集群。 我希望客户端通过内部IP而不是外部IP连接以优化性能。假设这些是我的IP: node1InternalIP / node1ExternalIP node2InternalIP / node2ExternalIP node3InternalIP / node3ExternalIP 当创建我的

  • 我正在尝试建立一个聊天程序。我写了代码,一切都工作了,当我使用我的电脑和使用127.0.0.1连接时,仍然工作得很好。我还成功地在我的笔记本电脑和运行在同一路由器上的电脑之间成功连接。(我使用内部IP地址做到这一点,10.0.0.3)。 现在我正在尝试在我的路由器和其他路由器之间建立连接。为此,我试图连接到外部IP地址。我通过路由器做端口转发部分,我还做了一个静态IP。当我运行代码时,我总是得到一

  • 我正在尝试在kubernetes上部署nginx,kubernetes版本是V1.5.2,我已经部署了3个副本的nginx,下面是YAML文件, 现在我要在节点的端口30062上公开它的端口80,为此我在下面创建了一个服务,

  • 我正在将minikube作为docker映像运行。我试图使用Nodeport将我的服务公开给外部世界。 这是我的yaml文件。 搜索了大量关于nodePort的信息,我们需要节点ip才能访问该服务。我可以使用minikube service docker hello world svc访问我的服务——url,它为我提供了访问服务的urlhttp://127.0.0.1:52526但此处的端口号与n

  • 问题内容: 阅读后:在Java中获取“外部” IP地址 码: 我以为自己是赢家,但出现以下错误 我认为这是因为服务器响应速度不够快,是否有任何方法可以确保它将获得外部ip? 编辑:好的,所以它被拒绝了,其他人知道另一个可以执行相同功能的站点 问题答案: 在运行以下代码之前,请先查看以下内容:http : //www.whatismyip.com/faq/automation.asp

  • 问题内容: 正在为Android 2.2开发Ping应用程序。 我尝试了我的代码,它可以工作,但是仅在本地IP中,这也是我想对外部服务器执行ping操作的问题。 这是我的代码: Ping 127.0.0.1-> OK Ping 8.8.8.8(Google DNS)->超时 我也将以下行放在清单XML中: 谁能告诉我我做错了什么? 问题答案: 获取ip命中的布尔值