我有一个TCP服务器,它试图使用go-couchbase客户端库连接到Couchbase数据库,但我得到一个错误,指出我试图访问的名为"events“的存储桶不存在。
当我使用Go的官方Couchbase客户端库时,一切工作正常。
我注意到这两个客户端的不同之处在于“池”的概念。我已将此池设置为“默认”。
是什么导致这个Go客户端看不到我的存储桶?
cb, err := couchbase.Connect("http://address:port")
if err != nil {
log.Fatalf("Error connecting: %v", err)
}
cbPool, err := cb.GetPool("default")
if err != nil {
log.Fatalf("Error getting pool: %v", err)
}
cbBucket, err := cbPool.GetBucketWithAuth("events", "username", "password")
if err != nil {
log.Fatalf("Error getting bucket: %v", err)
}发布于 2016-05-20 11:58:43
我假设您遇到了某种身份验证错误。这个API有点让人困惑。GetBucketWithAuth应该这样调用:
GetBucketWithAuth(“事件”,“事件”,“密码”)
原因是客户端需要存储桶用户名和存储桶密码。存储桶用户名与存储桶名称相同。
话虽如此,我强烈建议你使用gocb而不是go-couchbase。gocb是官方的Couchbase go客户端,而go-couchbase仅在Couchbase内部使用。事实上,许多使用go-couchbase的组件将开始使用gocb,因为这个库更容易使用,并且组织得更好。
https://stackoverflow.com/questions/37314427
复制相似问题