【发布时间】:2016-12-04 10:21:46
【问题描述】:
我在 Ubuntu Server 16.04 LTS 32 位机器上运行 Cassandra 3.7,我从存储中重新利用它。我设法正确配置 JVM 以在 32 位环境中运行。 Nodetool 状态工作正常。但是我很难让 CQLSH 工作。我最终得到以下错误:
('Unable to connect to any servers', {'127.0.0.1': ProtocolError("cql_version '3.4.2' is not supported by remote (w/ native protocol). Supported versions: [u'3.4.0']",)})
显然这里存在一些版本冲突,但我对为什么以及如何解决它感到困惑。我之前安装了 Cassandra 3.0,我配置了 cassanda-env.sh 以正确启动 JVM。当我安装到 3.7 时,我保留了那个 .sh 文件。我使用新安装更新了 cassandra.yaml。
所以我的问题是:Cassandra 3.7 是否支持 CQL 3.4.2?如果不是,那么为什么它似乎随它一起发货?如果没有,我需要做什么才能降级到 CQL 3.4.0?如果它确实支持它并且我的配置文件有误,那么错误是什么,我该如何解决?或者,我在这里完全缺少另一种配置吗?
这是我目前的配置:
cassandra-env.sh:https://www.dropbox.com/s/dcs99hgry5behqd/cassandra-env.sh?dl=0 cassandra.yaml:https://www.dropbox.com/s/boi8bh7gin0390f/cassandra.yaml?dl=0
非常感谢任何帮助。
编辑:在第一个答案的帮助下,我发现我有一个较旧的服务器实例正在运行。我无法从正确的版本开始...所以我从 /etc/init.d 中删除了 cassandra,现在我无法让 debian 包自动注册服务。
EDIT2:从 git repo 下载了 cassandra 脚本,现在 cassandra 将在重新启动后重新启动。现在 cassandra -v 向我展示:
3.7
我想看到什么并解决了与版本冲突有关的问题。但现在不幸的是,我看到了一个新错误:
Connection error: ('Unable to connect to any servers', {'127.0.0.1': TypeError('ref() does not take keyword arguments',)})
此问题已解决:cqlsh connection error: 'ref() does not take keyword arguments'
【问题讨论】:
标签: java cassandra cql cql3 cqlsh