cqlsh连接错误:'ref()不接受关键字参数'

时间:2016-07-27 15:07:51

标签: python linux cassandra cqlsh

我已经尝试了this postCassandra doc的所有措施。

我尝试运行所有版本的Cassandra,包括来自tarball和Debian软件包的最新版本3.7,但是当我执行cqlsh时我一直遇到错误。

错误:

  

连接错误:('无法连接到任何服务器',{'127.0.0.1':TypeError('ref()不接受关键字参数',)})

在将Linux Mint从17.3升级到18之前,我没有遇到运行Cassandra的问题。

我相信我安装了所有必要的软件包,例如java 8和python 2.7.12。

我认为cassandra.yaml文件中存在问题,因为默认设置不起作用,但我不确定如何正确配置以使其运行。

任何建议表示赞赏。

6 个答案:

答案 0 :(得分:22)

你正在遇到CASSANDRA-11850,其中cqlsh打破了Python 2.7.11+。此票证已标记为"已解决"并且补丁已经应用于尚未发布的Cassandra 3.9。

  

我相信我安装了所有必要的软件包,例如java 8和python 2.7.12。

在过渡期间(直到3.9发布)你可以回滚到Python 2.7.10,而cqlsh应该可以工作(不是很简单)。否则,DataStax DevCenter应与Cassandra 3.7一起使用。

编辑20161020

Cassandra 3.9几周前发布,现在可以downloaded

答案 1 :(得分:20)

参考https://issues.apache.org/jira/browse/CASSANDRA-11850

设置环境变量

之后
CQLSH_NO_BUNDLED=TRUE

它解决了。

我使用的是Windows 7,python 2.7.12,cassandra 3.7

答案 2 :(得分:5)

需要添加以下命令

sudo apt install python-pip
pip install cassandra-driver
export CQLSH_NO_BUNDLED=true

答案 3 :(得分:3)

适用于Amazon EC2中的Ubuntu 16.04:

sudo apt-get --no-install-recommends install python-cassandra python3-cassandra
CQLSH_NO_BUNDLED=TRUE cqlsh "$(ec2metadata --local-ipv4)"

答案 4 :(得分:0)

即使回滚到python 2.7.10之后,问题仍然存在。这意味着python 2.7.10未设置为默认的python版本。

转到/ usr / bin目录并检查可用的不同python版本,比如python2.7对应于2.7.10版本(您可以通过在终端中运行命令python2.7来检查它,并且将在下面提到python版本)解释器的第一行,尝试与文件夹中可用的所有其他python版本相同,以找到对应于2.7.10版本的版本。

现在,使用以下命令将正确的python版本(在我的情况下为python2.7)作为默认选项

update-alternatives --install / usr / bin / python python /usr/bin/python2.7

答案 5 :(得分:0)

可能是因为您尚未安装cassandra驱动程序。

因为我也遇到了同样的问题,所以我按照以下步骤解决了问题。

尝试安装python pip,然后安装cassandra-driver。

1.sudo apt安装python-pip 2.pip安装cassandra-driver