【问题标题】:Does Mgo cache connection strings?Mgo 缓存连接字符串吗?
【发布时间】:2015-06-18 00:26:01
【问题描述】:

我的 Go 应用程序一直使用 MGO 连接到 MongoDB(托管在 Compose.io 上),没有任何问题。

今天我决定删除这个数据库并添加一个不同的数据库(再次使用 Compose)。我更新了连接字符串。

所以我连接使用:

db, err := mgo.Dial("mongodb://<username>:<password>@dogen.mongohq.com:10048/db-name")

使用用户名和密码。

奇怪的是,应用程序似乎仍然连接到旧数据库。我知道这一点,因为我打印了 err 消息,告诉我:在我尝试执行查询后,未授权查询 my-old-db-name

我已经运行go install 再次编译,但仍然没有成功。

【问题讨论】:

  • 是的,我认为 - 我该如何克服这个问题?
  • 数据库确实有一个新名称 - 一个不同的名称。
  • 很高兴你找到了解决方案,我今天也学到了新东西。

标签: mongodb go mgo compose-db


【解决方案1】:

不,mgo 不会缓存您提供给mgo.Dial 函数的连接字符串。我什至不清楚这意味着什么?在您明确要求它连接到不同的数据库后使用不正确的数据库名称将是一个严重的错误,而不是缓存。

至于你的问题,你确定你不是在你自己的代码中引用旧的数据库名称吗? Dial 函数不是指定数据库名称的唯一方法(提示:session.DB

【讨论】:

  • 哦,你是对的 - 我忘记了对数据库名称的额外引用。这就是问题所在。
猜你喜欢
  • 2020-03-16
  • 1970-01-01
  • 2020-05-07
  • 1970-01-01
  • 2011-08-11
  • 2010-11-25
  • 2010-09-14
  • 1970-01-01
  • 2015-12-02
相关资源
最近更新 更多