Select 查询正常,但插入查询不在 Python 与 Couchbase 库中

Select query is working but insert query is not in Python with Couchbase library

我正在尝试使用 Couchbase Python 库进行一些远程操作。我写了一小段代码来测试它是否按预期工作。

server_name = 'xxxxxxxxxx'
bucket_name = 'vit_app_clob'
username = "Administrator"
password = "xxxxxx"
json_path = 'D:\' + bucket_name + '_' + server_name + '.json'

cluster = Cluster('couchbase://' + server_name + ':8091', ClusterOptions(PasswordAuthenticator(username, password)))

bucket = cluster.bucket(bucket_name)


def insert(bucket):
    result = cluster.query("INSERT INTO `oracle_test`(KEY, VALUE) VALUES ('key1', { 'type' : 'hotel', 'name' : 'new hotel' })")


def select():
    result = cluster.query('SELECT * FROM ' + bucket_name)
    myDict = []

    for row in result:
        name = row[bucket_name]
        # print(name)
        myDict.append(name)

    df = pd.DataFrame(myDict)
    with open(json_path, "w") as f:
        json.dump(myDict, f, indent=1)


select()
# insert(bucket)

Select 函数运行良好。查询运行s没有问题。但是我试图用于插入的另一个不起作用。它给出了超时错误。

couchbase.exceptions.TimeoutException: <Key='key3', RC=0xC9[LCB_ERR_TIMEOUT (201)]

可能是什么原因?当我在 couchbase 界面的查询部分中 运行 查询时,查询正在工作。

编辑:错误日志中有这部分:'endpoint': 'xxxxxx:11210'。我需要在这个端口有一个开放的连接吗?看来我现在没有任何访问权限,因为 telnet 不工作。如果是这种情况,那意味着通过 8091 连接还不够吗?

Edit2:我们打开了到端口的连接,但存在同样的问题

你是对的,8091端口一般是不够用的。查看 Couchbase port numbers.

上的文档

您可能不需要 所有 这些端口,具体取决于您使用的服务,但对于我的 day-to-day 工作,我通常 打开端口 8091-8097 和 11210。 (加密流量有对应的端口)。

我什至不知道为什么,但在查询末尾添加 .execute() 解决了问题。 SELECT 查询已经在没有它的情况下工作。另外,我需要在端口 11210

上打开一个连接