Cassandra cqlsh-连接被拒绝

Cassandra cqlsh-连接被拒绝,cassandra,cqlsh,Cassandra,Cqlsh,我刚刚开始使用Cassandra(datastax),版本2.1.3和cqlsh版本5.0.1 卡桑德拉启动良好,集群立即运行 Cqlsh不工作(在任何节点上),并发出以下错误: 连接错误:(‘无法连接到任何服务器’,{'127.0.0.1':错误(111, “已尝试连接到[('127.0.0.1',9042)]。上一个错误:连接被拒绝”)}) 我试着用主机自己的ip启动cqlsh,其他主机的ip,不同的端口,但结果仍然相同-始终拒绝连接。您需要在您尝试连接的节点上编辑cassandra.yam

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

卡桑德拉启动良好,集群立即运行

Cqlsh不工作(在任何节点上),并发出以下错误:

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


我试着用主机自己的ip启动cqlsh,其他主机的ip,不同的端口,但结果仍然相同-始终拒绝连接。

您需要在您尝试连接的节点上编辑
cassandra.yaml
,并为
rpc\u address
侦听\u address
设置节点ip地址,然后重新启动cassandra

rpc_address
是Cassandra侦听客户端调用的地址


listen_address
是Cassandra侦听其他Cassandra节点的地址。

尝试将
rpc_address
更改为指向节点的IP而不是0.0.0.0,并在连接到cqlsh时指定IP,如果IP为10.0.1.34,且
rpc_端口
保留为默认值9160,则以下操作应有效:

cqlsh 10.0.1.34 9160 
或:


还要确保在/etc/cassandra/cassandra.yaml配置文件中将start_rpc设置为true。

尝试将
native_transport_协议更改为port
9160
(如果设置为
9160
,则可能指向
9042
)。检查日志,查看cassandra正在哪个端口上侦听CQL客户端?

如果服务器正在运行,最好检查cassandra日志。我收到了完全相同的消息,但无法对其执行任何操作,然后我发现日志中有错误,系统实际上无法工作


愚蠢,我知道,但可能发生…

我试图在网络驱动器上运行它。因此,我在cqlsh中增加了
客户机\u超时时间
,它起了作用。

在ArchLinux上从Cassandra 3.0降级到Cassandra 2.2后,最近出现了同样的问题

与上述解决方案不同,我的问题不在.cassandra中,但3.0版将其配置保留在/var/lib/cassandra目录中

以下命令解决了我的问题:

sudo rm -R /var/lib/cassandra
sudo rm -R /var/log/cassandra
sudo rm -R /usr/share/cassandra

然后我安装了cassandra,一切都恢复正常:)

如果您在
/var/log/cassandra
中检查cassandra的
system.log
文件,请确保您也将“seeds”设置为“listen\u address”中提供的地址,您将看到出现此问题的原因是rpc服务器未启动

默认情况下,
cassandra.yaml
文件中的
start\u rpc
设置为false。将其设置为
start\u rpc:true
,然后重试


从Cassandra 3.0开始,
start\u rpc
默认设置为true

我在Cassandra 3.11.0中遇到了同样的问题,任何时候我更改rpc地址或侦听地址cqlsh都不起作用。我必须将相同的本地ip添加到
seeds

因此,经过多次尝试和错误后,我的工作cassandra.yml结果如下:

class-name: org.apache.cassandra.locator.SimpleSeedProvider
parameters: 
    -seeds: "192.168.0.30"

listen_adress: 192.168.0.30
rpc_address: 192.168.0.30

尝试将telnet发送到给定的地址。就我而言,有一道防火墙挡住了我

对我来说,原来服务根本没有运行。 核对

service cassandra status
如果您遇到了与我相同的错误,或者其他类型的错误,那么混淆IP地址根本解决不了您的问题

我得到的错误是:

cassandra dead but pid file exists

编辑:这是我问题的解决方案:

在/etc/cassandra/cassandra.yaml中查找本机传输端口 默认值为9842

native_transport_port: 9842
为了使用cqlsh连接到localhost,这个端口对我有用


cqlsh 127.0.0.1 9842

这是因为cassandra中有一些预配置。为了解决这个问题,在
cassandra env.sh
文件中有以下注释行:

#如果连接有问题,请添加以下内容:
#JVM_OPTS=“$JVM_OPTS-Djava.rmi.server.hostname=
在这里,您必须开始修复错误

打开端子并使用以下简单步骤开始固定:

步骤1

使用

sudo nano/etc/cassandra/cassandra env.sh

使用此命令并搜索
JVM\u OPTS=“$JVM\u OPTS-Djava.rmi.server.hostname=
只需删除行开头附加的
即可取消对行的注释

注意:如果您从未打开此文件来修复此错误,则会发现
JVM\u OPTS=“$JVM\u OPTS-Djava.rmi.server.hostname=

步骤2 现在将
替换为
127.0.0.1

步骤3保存文件并使用
systemctl restart cassandra.service
重新启动cassandra.service(如果您尚未启动,则服务器已重新运行)。或者使用
systemctl start cassandra.service
启动cassandra.service(如果服务器未运行)

步骤4使用
sudo service cassandra status
systemctl status cassandra.service
检查状态

注意:检查系统监视器是否正在运行cassandra

现在试试cqlsh
,它会起作用的


注意:
nano
是您可以使用其他编辑器的编辑器。

当我安装Cassandra 3.11.1时,我遇到了这个问题。我检查了/var/log/Cassandra/Cassandra.log,发现了这个错误 启动过程中遇到异常…这是一个错误,已报告。原始的post链接

解决方案是将卡桑德拉降级至3.0

  • 下载卡桑德拉rpm
  • 旋度-O

    wget

  • rpm-ivh cassandra-3.0.15-1.noarch.rpm
  • 服务卡桑德拉启动
  • 服务卡桑德拉状态#检查卡桑德拉街
    native_transport_port: 9842
    
    #add this if you’re having trouble connecting:
    #JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<public name>
    
    INFO  [main] 2019-03-15 19:53:06,156 Server.java:156 - Starting listening for CQL clients on /10.139.45.34:9042 (unencrypted)...
    
    cqlsh 10.0.2.64 9160 
    
    cqlsh 10.0.2.64