gpt4 book ai didi

c - 如何使用 lcb_create C API 连接到 Couchbase 2.0+?

转载 作者:太空宇宙 更新时间:2023-11-04 02:48:35 25 4
gpt4 key购买 nike

我要回到一年前工作的 C API Couchbase 2.0 项目,现在无法连接到数据库,在我认为除了 Ubuntu 更新之外没有改变的计算机和源代码上。

我现在在尝试调用 lcb_create 时收到以下错误:

Failed to create libcouchbase instance: The administrative account can no longer be used for data access

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;
}

我传递的用户名是管理员名称,正如我所说,这曾经有效。仔细阅读,听起来我们现在使用存储桶名称作为用户名?那么桶字段是多余的吗?密码现在是桶密码?我没有看到设置它的地方 - 也许我需要将 Couchbase Server 更新到 2.0 以上,而这些更新使我的 API 与服务器不同步?

最佳答案

您应该使用存储桶名称和密码连接到存储桶,而不是管理员名称。 Couchbase C client 2.1.1 的发行说明中对此进行了介绍.

管理员凭据的使用从未记录在案,这不是一种良好的安全做法,而且很少使用,因此 Couchbase 决定解决这个问题。

关于c - 如何使用 lcb_create C API 连接到 Couchbase 2.0+?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24642171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com