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
上打开一个连接
我正在尝试使用 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