为了账号安全,请及时绑定邮箱和手机立即绑定

连接到 Mongo Atlas 使用家庭无线但不使用电话连接

连接到 Mongo Atlas 使用家庭无线但不使用电话连接

Go
DIEA 2022-06-13 16:12:42
我正在目睹一些奇怪的事情。我有一个用 GO 编写的应用程序,但我不确定这是否相关,即使用 Mongo Atlas。当我使用家庭无线时,该应用程序可以愉快地连接到数据库。如果我更改连接并使用手机提供的连接,同一个应用程序将无法再连接到同一个数据库。失败的代码是这个connString := "mongodb+srv://my_usr:my_pwd@my_cluster.mongodb.net/scopone?retryWrites=true&w=majority"clientOptions := options.Client().ApplyURI(connString)client, err := mongo.NewClient(clientOptions)if err != nil {    log.Fatal("Error creating Mongo Client", err)}我得到的错误是error parsing uri: lookup my_cluster.mongodb.net on 172.20.10.1:53: cannot unmarshal DNS message有什么线索吗?
查看完整描述

2 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

我遇到了同样的问题,但如果解决了。


我不确定你是否得到了修复,但我会把它放在这里,以防有人会遇到同样的问题。我通过不使用"mongo+srv://..."连接字符串来解决这个问题。


解决方法是选择 mongo Java 驱动程序并选择版本 3.4


package main


import (

  "go.mongodb.org/mongo-driver/mongo"

)


func main () {

  ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)

  defer cancel()

  client, err := mongo.Connect(ctx, options.Client().ApplyURI(

     "mongodb://<USERNAME>:<PASSWORD>@cluster0-shard-00-00.oospj.mongodb.net:27017,cluster0-shard-00-01.oospj.mongodb.net:27017,cluster0-shard-00-02.oospj.mongodb.net:27017/<DBNAME>?ssl=true&replicaSet=atlas-d5lvih-shard-0&authSource=admin&retryWrites=true&w=majority",

  ))

  if err != nil {

    log.Fatal(err)

  }

}

这对我有用,希望它对你和下一个尝试使用 mongo 和 GO 的人有用。


查看完整回答
反对 回复 2022-06-13
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

如果您尝试从两个不同的网络访问 MongoDB Atlas,Atlas 将看到两个不同的 IP 地址。要解决此问题,请按照下列步骤操作

1 == 在每种连接模式下发现您的 IP 地址

连接到每个网络并转到https://whatismyipaddress.com/以找出两个 IP 地址是什么


2 == 在两个网络上确保您可以连接到端口 27017、27015 和 27016。

您可以使用此网站检查您的端口号:http ://portquiz.net:27017/


3 == 检查您的 IP 白名单。

在 MongoDB Atlas 控制台内部,进入左侧菜单,Security => Network Access => IP Whitelisting。确保 CIDR 范围允许您从两个 IP 地址进行连接。


快速说明:如果这是一个包含匿名虚假数据的测试集群,您可以通过将 0.0.0.0/0(从任何地方访问)列入白名单来运行快速测试。

请注意,如果您托管“真实”数据,这将违反安全规定。只有当这是一个测试集群并且使用的数据是假数据或公共数据时,您才能执行此操作。


查看完整回答
反对 回复 2022-06-13
  • 2 回答
  • 0 关注
  • 166 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信