My 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
再次编译,但仍然没有运气。
答案 0 :(得分:4)
不,mgo不会缓存您为mgo.Dial功能提供的连接字符串。这对我来说甚至不清楚这意味着什么?在明确要求连接到不同的数据库后使用不正确的数据库名称将是一个严重的错误,而不是缓存。
至于你的问题,你确定你没有在你自己的代码中引用旧的数据库名称吗? Dial函数不是指定数据库名称的唯一方法(提示:session.DB)