Google 云 Mongo 数据库:外部 IP 未连接
Google Cloud Mongo DB: External IP not connecting
我已经使用默认参数在 Google 云上创建了一个准备就绪的 MongoDB 服务器。他们之间一切正常(有沟通,我可以添加数据库和集合)。但是,我无法连接到任何外部计算机上的 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
编辑:
这是我的防火墙设置。
你
- 在Google云控制台中配置防火墙规则
- 在您的防火墙规则中提供一个标记
- 使用与防火墙规则相同的标记来标记您的实例
?
我详细解释了如何对外开放端口。替换成你自己的端口号。
我认为这里的问题是 ReplicaSetMonitorWatcher 正在将主机更改为 rs0/mongo-db-jff3:27017,其中 mongo-db-jff3 无法从您的网络访问。您需要将副本集中的主机配置为您可以访问的内容(静态 IP 或 URL)。
https://docs.mongodb.com/manual/tutorial/change-hostnames-in-a-replica-set/
快速示例,mongo 进入您的 PRIMARY(如果您不想停机,则为 SECONDARY):
cfg = rs.conf()
cfg.members[0].host = "mongodb0.example.net:27017"
cfg.members[1].host = "mongodb1.example.net:27017"
rs.reconfig(cfg)
我已经使用默认参数在 Google 云上创建了一个准备就绪的 MongoDB 服务器。他们之间一切正常(有沟通,我可以添加数据库和集合)。但是,我无法连接到任何外部计算机上的 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
编辑:
这是我的防火墙设置。
你
- 在Google云控制台中配置防火墙规则
- 在您的防火墙规则中提供一个标记
- 使用与防火墙规则相同的标记来标记您的实例
?
我详细解释了如何对外开放端口
我认为这里的问题是 ReplicaSetMonitorWatcher 正在将主机更改为 rs0/mongo-db-jff3:27017,其中 mongo-db-jff3 无法从您的网络访问。您需要将副本集中的主机配置为您可以访问的内容(静态 IP 或 URL)。
https://docs.mongodb.com/manual/tutorial/change-hostnames-in-a-replica-set/
快速示例,mongo 进入您的 PRIMARY(如果您不想停机,则为 SECONDARY):
cfg = rs.conf()
cfg.members[0].host = "mongodb0.example.net:27017"
cfg.members[1].host = "mongodb1.example.net:27017"
rs.reconfig(cfg)