Cassandra cqlsh - 连接被拒绝

71

我刚开始使用Cassandra(datastax),版本2.1.3和cqlsh版本5.0.1。

Cassandra可以正常启动,并且集群可以立即运行。

但是cqlsh无法工作(在任何节点上),并且会产生以下错误:

连接错误:(“无法连接到任何服务器”,{'127.0.0.1':error(111, “尝试连接[('127.0.0.1',9042)]。上一个错误:拒绝连接”)})

我已经尝试使用主机自己的IP、其他主机的IP、不同端口启动cqlsh,但结果始终相同-始终是连接被拒绝。


考虑到我自己和这里提供的帮助都无法解决2.1.3版本(尽管它仍在开发中)的问题,我重新配置了服务器,使用了2.0.13版本(稳定版)。Cqlsh仍然会出现localhost:9160错误(尽管已经指定了rpc_address为主机),但是手动指定IP地址启动它cqlsh 1.1.2.2 9160可以正常工作。 - Chros
基于您降级到2.0.13并且它可以工作,我猜测您在 listen_addressrpc_addressbroadcast_rpc_address 之间设置了某种不正确的选项...后者是2.1.x中的新设置。 我想知道 listen_addressrpc_address 设置是什么(不一定要知道值,但要知道它们与使用cqlsh的1.1.2.2 IP的关系)。 如果您再次尝试2.1.x,请将 listen_address 设置为本地IP,将 rpc_address 设置为0.0.0.0,并将 broadcast_rpc_address 设置为外部IP。 - Aaron
在这种设置中,1.1.2.2 是主机 IP(主机只有内部 IP),其值为:listen_address: 1.1.2.2 rpc_address: 0.0.0.0 broadcast_rpc_address: 1.1.2.2。广播地址是必需的(Cassandra 日志)。尝试了大多数组合,但都没有成功。最终不得不在 2.0.13 中删除/注释掉它,因此很可能是 broadcast_rpc_address 导致了问题。不确定我还能给它哪些其他值。难道它不会在其他地方抛出错误吗? - Chros
22个回答

0
尝试使用telnet连接给定的地址。在我这种情况下,有一个防火墙阻止了我的连接。

0

当我安装Cassandra 3.11.1时,遇到了这个问题。我检查了 /var/log/cassandra/cassandra.log 并发现了这个错误:启动期间遇到异常... 这是一个已经报告的 bug。原始帖子链接 https://issues.apache.org/jira/browse/CASSANDRA-14173

解决方案是将 Cassandra 降级到 3.0

  1. 下载 Cassandra rpm

curl -O https://www.apache.org/dist/cassandra/redhat/30x/cassandra-3.0.15-1.noarch.rpm

或者

wget https://www.apache.org/dist/cassandra/redhat/30x/cassandra-3.0.15-1.noarch.rpm

  1. rpm -ivh cassandra-3.0.15-1.noarch.rpm
  2. service cassandra start
  3. service cassandra status # 检查cassandra状态

cassandra (pid 2322)正在运行...

  1. cqlsh # 启动cassandra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接