【发布时间】:2014-07-08 21:56:13
【问题描述】:
我正在返回一个 C API Couchbase 2.0 项目,该项目在一年前工作,但现在无法连接到计算机上的数据库,我相信除了 Ubuntu 更新之外,源代码没有改变。
我现在尝试调用 lcb_create 时收到以下错误:
创建 libcouchbase 实例失败:管理帐户可以 不再用于数据访问
lcb_create 参数或行为是否发生了变化?我现在需要提供什么?
我的代码是:
// Create the database instance:
lcb_error_t err;
struct lcb_create_st create_options;
struct lcb_create_io_ops_st io_opts;
io_opts.version = 0;
io_opts.v.v0.type = LCB_IO_OPS_DEFAULT;
io_opts.v.v0.cookie = NULL;
memset(&create_options, 0, sizeof(create_options));
err = lcb_create_io_ops(&create_options.v.v0.io, &io_opts);
if (err != LCB_SUCCESS) {
fprintf(stderr, "Failed to create libcouchbase IO instance: %s\n",
lcb_strerror(NULL, err));
return 1;
}
create_options.v.v0.host = Host;
create_options.v.v0.user = Username;
create_options.v.v0.passwd = Password;
create_options.v.v0.bucket = Bucket;
err = lcb_create(&Instance, &create_options);
if (err != LCB_SUCCESS) {
fprintf(stderr, "Failed to create libcouchbase instance: %s\n",
lcb_strerror(NULL, err));
return 1;
}
我传递的用户名一直是管理员名称,正如我所说,这曾经有效。仔细阅读,听起来现在我们使用存储桶名称作为用户名?那么bucket字段是多余的吗?密码现在是存储桶密码?我没有看到可以设置它的地方 - 也许我需要将 Couchbase Server 更新到 2.0 以上版本,而这些更新导致我的 API 与服务器不同步?
【问题讨论】:
标签: c authorization couchbase