Mgo 是否缓存连接字符串?

Does Mgo cache connection strings?

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

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

所以我连接使用:

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

设置好用户名和密码。

奇怪的是,应用程序似乎仍然连接到旧数据库。我知道这一点是因为我打印了 err 消息告诉我:not authorized for query on my-old-db-name after I try to perform a query.

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

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

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