Couchbase GoLang客户端无法找到存储桶

时间:2016-05-19 05:17:08

标签: go couchbase go-couchbase database nosql

我有一台TCP服务器尝试使用go-couchbase客户端库连接到Couchbase数据库,但是我收到一条错误消息,说明我尝试访问的存储桶,名为" events&#34 ;,不存在。

当我使用Go的官方Couchbase客户端库时,一切正常。

我注意到这两个客户之间的差异是" pool"的概念。我已将此池设置为"默认"。

什么可能导致这个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)
}

1 个答案:

答案 0 :(得分:1)

我假设您遇到某种身份验证错误。 API有点令人困惑。应该像这样调用GetBucketWithAuth:

GetBucketWithAuth(" events"," events"," password")

原因是客户端需要存储桶用户名和存储桶密码。存储桶用户名与存储桶名称相同。

有了这个说我强烈建议你使用gocb而不是go-couchbase。 gocb是官方的Couchbase go客户端,go-couchbase仅在Couchbase内部使用。事实上,许多使用go-couchbase的组件将开始使用gocb,因为这个库更容易使用并且组织得更好。

https://github.com/couchbase/gocb

相关问题