在Python中如何使用sylli容器访问scylli?

2024-09-29 23:29:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经按照official doc与“锡拉伯”建立了码头集装箱。我创建了键空间和表。现在我想在这个表中插入一些数据。我想知道我能做这个吗?我找到了一个例子:

import cql
con = cql.connect('localhost', 9160,  'logs', cql_version='3.0.0')
print ("Connected!")
cursor = con.cursor()
CQLString = "INSERT INTO event_attend (event_id, event_type, event_user_id) VALUES (131, 'Party', 3156);"
cursor.execute(CQLString)

但是我得到的错误如下所示。我找不到任何例子来说明如何用Docker来完成。有什么想法吗?在

^{pr2}$

Tags: 数据importeventiddoc集装箱connect空间
2条回答

容器的“localhost”地址在容器本身之外不可访问。在

您可能需要执行以下操作。首先确保“锡拉布”节点正在使用

docker exec -it scylla nodetool status

它应该输出类似于:

^{pr2}$

如果所有节点的状态都是“down”(DN),您可能需要首先启动它们。在

现在,使用正在运行的节点的显示地址。如果集群中有多个节点,那么这些地址中的任何一个都可以。如果cqlsh安装在您的系统中,您可以首先尝试手动连接cqlsh:

cqlsh 172.17.0.2

否则,只需将其放入Python脚本并运行它。在

你能检查一下9042端口吗,这是默认的CQL端口。9160是旧港,现在很少使用。 另外,您是否可以确保转发端口,例如:

docker run name some-scylla \ volume /var/lib/scylla:/var/lib/scylla \ -p 9042:9042 -p 7000:7000 -p 7001:7001 -p 7199:7199 \ -p 9160:9160 -p 9180:9180 -p 10000:10000 \ -d scylladb/scylla overprovisioned 1

相关问题 更多 >

    热门问题