我在尝试从Python连接到我的本地Cassandra实例时获得异常。我可以使用cqlsh连接到Cassandra没有问题。我正在运行的版本是ubuntu上的Cassandra 3.01:
cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.0.1 | CQL spec 3.3.1 | Native protocol v4]
我获得的例外如下:
ERROR:cassandra.cluster:Control connection failed to connect, shutting down Cluster:
Traceback (most recent call last):
File "cassandra/cluster.py", line 840, in cassandra.cluster.Cluster.connect (cassandra/cluster.c:11146)
File "cassandra/cluster.py", line 2088, in cassandra.cluster.ControlConnection.connect (cassandra/cluster.c:36955)
File "cassandra/cluster.py", line 2123, in cassandra.cluster.ControlConnection._reconnect_internal (cassandra/cluster.c:37811)
NoHostAvailable: ('Unable to connect to any servers', {'127.0.0.1': InvalidRequest(u'code=2200 [Invalid query] message="unconfigured table schema_keyspaces"',), 'localhost': InvalidRequest(u'code=2200 [Invalid query] message="unconfigured table schema_keyspaces"',)
我检查了我的cassandra.yaml文件,看起来没问题:
egrep 'rpc_port:|native_transport_port:' /etc/cassandra/cassandra.yaml
native_transport_port: 9042
rpc_port: 9160
我还能看到别的什么?建议是最受欢迎的。
答案 0 :(得分:4)
看起来您正在尝试使用旧版本的cqlsh连接到3.0.1服务器,或者您(不知何故)使用较旧的python驱动程序。
您收到的错误消息:
(u'code=2200 [Invalid query] message="unconfigured table schema_keyspaces"',)
表示客户端驱动程序正在尝试从早于3.0的schema_keyspaces
表中获取表元数据。此信息现在保存在system_schema.keyspaces
表中。
答案 1 :(得分:0)
使用pip install --upgrade cassandra-driver
升级cassandra-driver。
您可以输入python -c 'import cassandra; print cassandra.__version__'
来确认此驱动程序的版本。